я столкнулся некоторые странные проблемы, вот мой код для регистрации жест панорамированияSwift: метод делегата UIPanGestureRecognizer не называется
public func registerGesture(_ view: UIView) {
self.gesture = UIPanGestureRecognizer(target: self, action: #selector(handleGesture(_:)))
self.gesture?.minimumNumberOfTouches = 1
self.gesture?.maximumNumberOfTouches = 1
self.gesture?.delegate = self
view.addGestureRecognizer(self.gesture!)
}
UIPanGestureRecognizer
метод делегата не дозвонились.
extension PanGestureHandler : UIGestureRecognizerDelegate {
public func gestureRecognizer(_ gestureRecognizer: UIGestureRecognizer, shouldRecognizeSimultaneouslyWith otherGestureRecognizer: UIGestureRecognizer) -> Bool {
guard let g = self.gesture else { return false }
guard g.view is UIScrollView else { return false }
return true
}
public func gestureRecognizer(_ gestureRecognizer: UIGestureRecognizer, shouldBeRequiredToFailBy
otherGestureRecognizer: UIGestureRecognizer) -> Bool {
return false
}
}
Вместо этого, если я отладки кода и напечатать строку self.gesture.delegate
, то метод делегата вызывался.
Каждый раз, когда мне нужно распечатать приведенную выше строку, чтобы работать. Пожалуйста, помогите мне, спасибо
Где вы вызова метода registerGesture? –
@PiotrBernad, спасибо за ваш ответ. Я нахожу решение, я создал singleton sharedinstance для класса, теперь он работает нормально. – Raju