Actuellement, j'ai 2 classes: ViewController et classe A. Mon objectif est d'ajouter du robinet à un geste de reconnaissance UIView de la classe A. Mon ViewController:Ajouter robinet geste d'un autre fichier de reconnaissance
class ViewController {
@IBOutlet var area: UIView!
func enterClassA() {
let classA = A(self.area)
//some processing
}
}
class A : UIGestureRecognizerDelegate {
private var currView: UIView!
init(newView: UIView) {
self.currView = newView
self.addTapGesture()
}
func addTapGesture() {
let tap = UITapGestureRecognizer(target: self.currView, action:#selector(tapDetected(_:)))
tap.delegate = self.currView as! UIGestureRecognizerdelegate? //***
self.currView.addGestureRecognizer(tap)
}
@objc func tapDetected(_ tapGesture: UIGesturerecognizer) {
print ("Tap detected!")
}
}
Mais maintenant il est de donner erreur: impossible de convertir la valeur de type 'UIView' en 'UIGestureRecognizerDelegate'. J'ai essayé de modifier la ligne *** à
tap.delegate = self
Mais il ne fonctionne toujours pas, montrant erreur: sélecteur non reconnu envoyé à l'instance. Supprimer la ligne donne la même erreur. Est-ce que je peux savoir si c'est faisable ou non (ajout de reconnaissance de gestes d'une classe différente)? Si oui, comment dois-je l'aborder?