mac - ios 12 iphone 7
Haz clic en Evento en UIImageView programáticamente en ios (7)
Estoy mostrando una imagen del código aquí es el código
UIImageView *preArrowImage =[[UIImageView alloc]init ];
preArrowImage.image =[UIImage imageNamed:@"arrowprev.png"];
preArrowImage.frame = CGRectMake(20, 60, 10, 30);
[self.view addSubview:preArrowImage];
Quiero manejar el evento táctil en preArrowImage programmatically.
¡Ahora en Swift!
let singleTap = UITapGestureRecognizer(target: self, action: Selector("tapDetected"))
singleTap.numberOfTapsRequired = 1
preArrowImage.userInteractionEnabled = true
preArrowImage.addGestureRecognizer(singleTap)
//Action
func tapDetected() {
println("Single Tap on imageview")
}
Aquí hay otra opción: Cheat.
Quiero decir, piensa lateralmente.
Configura tu UIImage cómo quieras, recorta, da forma, lo que sea.
Superponga esto con una UIView (dimensiones iguales, posición, etc.)
Establezca el fondo para borrar el color y la clase a UIControl.
Apunte el evento touch up inside a su controlador, y listo.
Si su UIImageView es un IBOutlet que obtiene de Storyboard o Nib, puede agregar un UIGestureRecognizer a la vista de imagen, habilitar la interacción del usuario y conectar un IBAction al reconocedor de gestos.
Para obtener más información, consulte mi respuesta a esta pregunta: cómo hacer un UIImageView en el guión gráfico en el que se puede hacer clic (swift)
Simplemente agregue una UITapGesture
en la imagen pero recuerde hacer que su UserInteraction esté activada .
UITapGestureRecognizer *singleTap = [[UITapGestureRecognizer alloc] initWithTarget:self
action:@selector(singleTapGestureCaptured:)];
[preArrowImage addGestureRecognizer:singleTap];
[preArrowImage setMultipleTouchEnabled:YES];
[preArrowImage setUserInteractionEnabled:YES];
C objetivo
UITapGestureRecognizer *singleTap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(tapDetected)];
singleTap.numberOfTapsRequired = 1;
[preArrowImage setUserInteractionEnabled:YES];
[preArrowImage addGestureRecognizer:singleTap];
-(void)tapDetected{
NSLog(@"single Tap on imageview");
}
SWIFT 4
let preArrowImage : UIImageView // also give it frame
let singleTap = UITapGestureRecognizer(target: self, action: Selector("tapDetected"))
preArrowImage.isUserInteractionEnabled = true
preArrowImage.addGestureRecognizer(singleTap)
//Action
@objc func tapDetected() {
print("Imageview Clicked")
}
Swift 3
En UIImageView habilita UserInterAction
override func touchesEnded(_ touches: Set<UITouch>, with event: UIEvent?) {
super.touchesEnded(touches, with: event)
if let touch = touches.first {
if touch.view == self.imgVwPostPreview { //image View property
//Do your actions
//self.delegate?.didClickOnCellImageView(indexPath: self.cellIndexPath!)
}
}
}
Usando storyboard con vista en el controlador de vista.
Después de seleccionar uno de los reconocedores de gestos, arrástrelo a su controlador.
Ahora se mostrará en "Esquema del documento" y en el encabezado del controlador de vista xib.
Arrastra el gesto a UILable
crear el método IBAction en el archivo de encabezado
Ahora arrástralo desde el controlador al ícono de gestos en xib