Je montre une image de code voici le code
UIImageView *preArrowImage =[[UIImageView alloc]init ];
preArrowImage.image =[UIImage imageNamed:@"arrowprev.png"];
preArrowImage.frame = CGRectMake(20, 60, 10, 30);
[self.view addSubview:preArrowImage];
Je veux gérer l'événement tactile sur le preArrowImage par programme.
Objectif c
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.2
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")
}
Ajoutez simplement une UITapGesture
sur l'image, mais n'oubliez pas de faire son UserInteraction Enabled .
UITapGestureRecognizer *singleTap = [[UITapGestureRecognizer alloc] initWithTarget:self
action:@selector(singleTapGestureCaptured:)];
[preArrowImage addGestureRecognizer:singleTap];
[preArrowImage setMultipleTouchEnabled:YES];
[preArrowImage setUserInteractionEnabled:YES];
Maintenant à 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")
}
Swift 3
On UIImageView enable 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!)
}
}
}
Utilisation du story board avec vue dans vue contrôleur.
Après avoir sélectionné l’un des outils de reconnaissance de mouvements, faites-le glisser vers votre contrôleur.
Maintenant, il apparaîtra dans "Aperçu du document" et dans l'en-tête du contrôleur de vue xib.
Faites glisser le geste vers UILable
créer une méthode IBAction dans le fichier d'en-tête
Maintenant, faites-le glisser du gestionnaire à l'icône de geste dans xib
Voici une autre option: Tricher.
Je veux dire, pense latéralement.
Configurez votre UIImage comme vous le souhaitez, recadré, ajusté, quel que soit votre choix.
Superposez ceci avec un UIView (dimensions égales, position, etc.)
Définissez l'arrière-plan sur clearcolour et la classe sur UIControl.
Dirigez l'événement à l'intérieur de votre retouche et le tour est joué.
Si votre UIImageView est un IBOutlet que vous obtenez d'un Storyboard ou d'un Nib, vous pouvez ajouter un UIGestureRecognizer à la vue d'image, activer l'interaction utilisateur et connecter un IBAction au logiciel de reconnaissance de geste.
Pour plus d’informations, vérifiez ma réponse à cette question: Comment créer un UIImageView sur le storyboard cliquable (Swift)