web-dev-qa-db-fra.com

Cliquez sur Event sur UIImageView par programme dans ios

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. 

82
Sumit Patel

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")
}
221
Vivek Sehrawat

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];
17
IronManGill

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")
}
4
Sakiboy

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!)
            }
        }
    }
4
Jaleel Nazir

Utilisation du story board avec vue dans vue contrôleur.  
view may be ImageView, UIView, UILabel, TextField or other controller


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. 

Gesture icon in document out line and xib
Faites glisser le geste vers UILable
Drag gesture to UILable


Manually create (IBAction)method in header file


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 
Link it with gesture icon

3
Subhash

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é.

0
Raki

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)

0
xxtesaxx