Ich habe einige Probleme, meine Tippgeste zu arbeiten, wenn mein Code in Klassen aufgeteilt ist. Ich hatte das alles früher in einer Datei enthalten und es funktionierte reibungslos, so ich nehme an, ich habe etwas falsch gemacht in dem folgenden Code:Swift: tippen Geste nicht erkannt
placeContainerView.userInteractionEnabled = true
let showFullPlaceContainerView = UITapGestureRecognizer(target: self, action: Selector(self.showFullPlaceContainerViewFunction(placeContainerView)))
placeContainerView.addGestureRecognizer(showFullPlaceContainerView)
, wo die Funktion showFullContainerViewFunction(placeContainerView)
func showFullPlaceContainerViewFunction(placeContainerView: PlaceContainerView) {
placeContainerView.animateExpandContractContainer()
}
und
func animateExpandContractContainer() {
print("Tap gesture working")
if self.displayingPlaceLabel == false {
print(self.displayingPlaceLabel)
self.displayingPlaceLabel = true
UIView.animateWithDuration(0.4, delay: 0.0, options: [], animations: {
self.center.x += 180
}, completion: nil)
} else {
self.displayingPlaceLabel = false
UIView.animateWithDuration(0.4, delay: 0.0, options: [], animations: {
self.center.x -= 180
}, completion: nil)
}
}
Irgendwie erkennt die placeContainerView die Taps nicht und gibt beim Klicken keine print-Anweisungen zurück.
Irgendwelche Ideen? Danke für Ihre Hilfe!
Ich bin nicht sicher, wie, aber Selektoren '#selector (className.methodName)' sollte keine Parameter haben. So etwas ist falsch mit dieser http://stackoverflow.com/questions/32085396/using-parameters-in-action-of-uitapgesture_recognizer-in-swift – impression7vx
Ich denke, dass Ihr Selektor falsch ist. Es sollte '#selector (Classname.showFullPlaceContainerViewFunction (_ :))' statt 'Selector (self.showFullPlaceContainerViewFunction (placeContainerView))' – RJE
@RJE Ich habe es ersetzt, wie Sie gesagt haben, und der Code gibt keine Fehler, aber wann Ich führe es aus und versuche, die "placeContainerView" zu tippen Ich erhalte eine Fehlermeldung, wo der animateExpandContractContainer aufgerufen wird - Thread 1: EXC_BAD_ACCESS – tryingtolearn