У меня возникли проблемы с тем, что мой жест нажатия будет работать, когда мой код будет разделен на классы. Я все это содержится в одном файле раньше и он работал гладко, так что я полагаю, я сделал что-то неправильно в следующем коде:Swift: tap Жест не распознан
placeContainerView.userInteractionEnabled = true
let showFullPlaceContainerView = UITapGestureRecognizer(target: self, action: Selector(self.showFullPlaceContainerViewFunction(placeContainerView)))
placeContainerView.addGestureRecognizer(showFullPlaceContainerView)
где функция showFullContainerViewFunction(placeContainerView)
func showFullPlaceContainerViewFunction(placeContainerView: PlaceContainerView) {
placeContainerView.animateExpandContractContainer()
}
и
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)
}
}
Каким-то образом placeContainerView не распознает краны и не возвращает никаких операторов печати при нажатии.
Любые идеи? Спасибо за вашу помощь!
Я не знаю, как, но селекторы '#selector (className.methodName)' не должны иметь каких-либо параметров. Так что что-то не так с этим http://stackoverflow.com/questions/32085396/using-parameters-in-action-of-uitapgesturerecognizer-in-swift – impression7vx
Я думаю, что ваш селектор ошибочен. Он должен быть «#selector (Classname.showFullPlaceContainerViewFunction (_ :))» вместо «Selector» (self.showFullPlaceContainerViewFunction (placeContainerView)) ' – RJE
@RJE Я заменил его, как вы сказали, и код не дает ошибок, но когда Я запускаю его и пытаюсь нажать «placeContainerView». Я получаю сообщение об ошибке, когда вызывается animateExpandContractContainer - Thread 1: EXC_BAD_ACCESS – tryingtolearn