die Gestenerkenner als Parameter erhalten Sie location(ofTouch:in:)
verwenden können, die Position der Verbindung zu setzen. Sie benötigen jedoch innerhalb der Funktion, in der Sie auf den Speicherort zugreifen möchten, Zugriff auf den Gestenerkenner. Daher sollten Sie doubleTap
als Instanzeigenschaft Ihrer Klasse deklarieren.
class YourViewController: UIViewController {
let doubleTap = UITapGestureRecognizer(target: self, action: #selector(YourViewController.doubleTap))
override func viewDidLoad(){
super.viewDidLoad()
doubleTap.numberOfTapsRequired = 2
doubleTap.numberOfTouchesRequired = 1
view.addGestureRecognizer(doubleTap)
}
func doubleTap(){
let touchLocation = doubleTap.location(ofTouch: numberOfTouches-1,in: nil)
}
}
Ändern Sie die Eingabeparameter an die Funktion, wenn Sie ändern möchten, ob Sie das erste oder letzte Note Standort erhalten müssen oder wenn Sie wollen die Lage relativ zu einem Subview zu bekommen.
Verwenden Sie die '# Selektor'-Syntax. Das wird den Fehler mit dem ungültigen Selektor finden, den Sie gerade in Ihrem Code haben :) – Sulthan
Fixed it, danke @Sultan – Yitzchak
Ich kann Code nicht kompilieren. Das Argument '#selector' kann nicht auf die Variable 'doubleTap' verweisen – Vladislav