2017-07-19 1 views
1

J'ai un gros bouton qui lorsque l'utilisateur tape, je voudrais trouver l'emplacement de leur doigt. Je connais l'emplacement du tap en utilisant UITouches de la méthode TouchesBegan. Est-il possible d'obtenir l'emplacement à partir d'un UIButton?Touchez l'emplacement à l'aide du bouton rapide 3

Mon code:

@IBAction func buttonPressed(_ sender: UIButton) { 

    //Find touch location here 

} 
+0

Que voulez-vous dire par emplacement? x, y les coordonnées? Essayez-vous d'avoir plus de cibles tactiles dans une seule cible? –

+0

Vous avez besoin de l'emplacement par rapport au bouton lui-même ou superview? –

+0

oui les coordonnées x, y et par rapport à la super vue serait le mieux –

Répondre

2

Vous avez besoin sous-classe la UIButton et en utilisant le touchesBegan vous pouvez obtenir l'emplacement du contact par rapport à bouton lui-même ou par rapport à Superview

class TouchReporterButton: UIButton { 

    /* 
    // Only override draw() if you perform custom drawing. 
    // An empty implementation adversely affects performance during animation. 
    override func draw(_ rect: CGRect) { 
     // Drawing code 
    } 
    */ 

    override func touchesBegan(_ touches: Set<UITouch>, with event: UIEvent?) { 
     super.touchesBegan(touches, with: event) 
     let touch = touches.first 

     let location = touch?.location(in: self.superview); 
     if(location != nil) 
     { 
      //Do what you need with the location 
     } 
    } 

} 

Hope this helps