2012-07-09 9 views
51

He encontrado un problema donde mi botón debe permanecer "presionado" mientras muestra un popover llamado desde él. Popover es el selector de algún filtro y el filtro se muestra en el botón mismo. Cuando lo toco y muestra popover, se deselecciona sin importar nada.UIButton events. ¿Cual es la diferencia?

Creo que tengo que redefinir su comportamiento en el evento táctil y hacerlo responder al estándar touch up inside. Entonces me pregunté de qué son responsables otros eventos. Pero no pude encontrar la lista de eventos en la biblioteca de iOS y en StackOverflow solo hay preguntas sobre el comportamiento incorrecto de touch up inside o touch down.

¿Cuál es la diferencia entre los eventos táctiles?

  1. cancelar táctil: cuando toca el botón pero mueve el dedo y permanece desactivado?
  2. toque hacia abajo - toque derecho.
  3. touch down repeat ??
  4. tocar arrastrar enter ??
  5. toque arrastrar salir ??
  6. toque arrastre adentro ??
  7. toque arrastre afuera ??
  8. retoque en el interior - cuando toca y suelta el botón que queda en sus límites . Cambia el estado de UIButtons a Normal.
  9. retoque afuera - cuando toca y suelta el botón dejándolo en límites?

otras IBActions no son enviadas por UIButton, ¿verdad? ¿También cómo esos eventos cambian la apariencia de UIButton? Como highlighted o selected?

Agradecería un enlace en un buen artículo sobre IBActions, porque no pude encontrarlo.

+6

http://developer.apple.com/library/ios/#documentation/uikit/reference/UIControl_Class/Reference/Reference.html#//apple_ref/doc/constant_group/Control_Events – janusbalatbat

+0

@janusfidel muchas gracias mucho, respondió mi pregunta por completo :) – Protheus

Respuesta

126

De ios library:

  1. UIControlEventTouchCancel

    Un evento de sistema de cancelación de los toques actuales para el control.

  2. UIControlEventTouchDown

    Un evento de contacto hacia abajo en el control.

  3. UIControlEventTouchDownRepeat

    Un evento de contacto hacia abajo en el control repite; para este evento, el valor del método UITouch tapCount es mayor que uno.

  4. UIControlEventTouchDragEnter

    Un evento donde un dedo es arrastrado en los límites del control.

  5. UIControlEventTouchDragExit

    Un evento donde un dedo es arrastrado desde el interior de un control para fuera de sus límites.

  6. UIControlEventTouchDragInside

    Un evento donde un dedo es arrastrado dentro de los límites del control.

  7. UIControlEventTouchDragOutside

    Un evento en el que un dedo se arrastra justo fuera de los límites del control.

  8. UIControlEventTouchUpInside

    Un evento de retoque en el control en el que el dedo está dentro de los límites del control.

  9. UIControlEventTouchUpOutside

    Un evento de retoque en el control en el que el dedo se encuentra fuera de los límites del control.

+3

Entonces, solo para aclarar, por un evento de "retoque", significa que el dedo fue removido, ¿verdad? Porque eso podría significar una serie de cosas diferentes (por ejemplo, deslizar ligeramente hacia arriba, deslizar hacia arriba y quitar el dedo, o podría relacionar de forma extraña el significado real de la palabra [retoque] (http: //www.merriam-webster. com/dictionary/retoque)). –

+1

@ParthianShot Es cuando el usuario mueve su dedo lejos de la pantalla, sí. – Protheus

+0

Parece que 'DragEnter' y' DragInside' son muy similares? – Crashalot