Estoy tratando de asignar un UIImageViewa una acción cuando el usuario la toca.
Sé cómo crear una acción para a UIButton, pero ¿cómo podría imitar el mismo comportamiento de a UIButton, pero usando a UIImageView?
ios
swift
uiimageview
usuario3706773
fuente
fuente

@objcmodificador a la función.Debe agregar un reconocedor de gestos (para tocar use UITapGestureRecognizer , para tocar y sostener use UILongPressGestureRecognizer ) a su
UIImageView.E implementar el método selector como:
fuente
Puede agregar un
UITapGestureRecognizera imageView, simplemente arrastre uno a su Storyboard / xib, arrastre Ctrl y arrastre desde imageView al gestoReconocidor, y Ctrl-arrastre desde el gestorReconocidor al archivo Swift para crear un archivoIBAction.También deberá habilitar las interacciones del usuario en el
UIImageView, como se muestra en esta imagen:fuente
UIImageViewno responde a toques por defecto. También debe habilitar las interacciones del usuario.Para swift 2.0 y superior, haga esto
fuente
Código Swift4
Pruebe esto con algunos métodos de extensión nuevos:
Ahora, cuando queramos agregar a
UITapGestureRecognizera unaUIViewoUIViewsubclase comoUIImageView, ¡podemos hacerlo sin crear funciones asociadas para los selectores!Uso:
fuente
En realidad, podría configurar la imagen de
UIButtonlo que normalmente pondría en aUIImageView. Por ejemplo, donde harías:En su lugar, podría usar:
Entonces, así es como se vería su código:
Lo mejor de usar este método es que si tiene que cargar la imagen desde una base de datos, puede configurar el título del botón antes de configurar la imagen:
Para decirle a sus usuarios que está cargando la imagen
fuente
Es necesario agregar perezoso para que TapGestureRecognizer se registre,
ya que el 'self' en UITapGestureRecognizer (target: self ...) será nulo si no es un var perezoso. Incluso si establece isUserInteractionEnable = true, no se registrará sin lazy var.
fuente
Puede colocar un
UIButtonfondo transparente sobre la parte superiorUIImageViewy escuchar un toque en el botón antes de cargar la imagen.fuente
Swift 4 Code
Paso 1 en ViewdidLoad ()
Paso 2 Agregar la siguiente función
Está probado y funciona correctamente
fuente
Sugiero colocar el botón invisible (opacidad = 0) en su vista de imagen y luego manejar la interacción en el botón.
fuente