I have multiple views defined in my main view. I want to add single tap gesture to all these views. Below is the code I have written, but this registers a tap gesture to the
Add one tap gesture to multiple views (in this case UILabel), using computed properties. It creates new recognizer for every call.
var recognizer: UITapGestureRecognizer {
get {
return UITapGestureRecognizer(target: self, action: #selector(self.labelTapped(_:)))
}
}
label1.addGestureRecognizer(recognizer)
label2.addGestureRecognizer(recognizer)
label3.addGestureRecognizer(recognizer)
label4.addGestureRecognizer(recognizer)
and labelTapped function
@objc func labelTapped(_ sender: UITapGestureRecognizer) {
let tappedLabel:UILabel = (sender.view as! UILabel)
}