Как прокрутить UIScrollView и распознать жест?
У меня есть распознаватель жестов в UIScrollView, однако его вряд ли когда-либо вызывают, поскольку UIScrollView ест все жесты.
Я частично обошел эту проблему с этой строкой: [scrollView.panGestureRecognizer requireGestureRecognizerToFail:rightSwipe];
однако эта строка приводит к тому, что мой распознаватель всегда принимается (желаемое поведение) и прокрутки не прокручивается.
То есть, когда вы прокручиваете, распознаватель принимается, но просмотр не прокручивается.
Как я могу обойти это, или есть альтернативное решение?
Спасибо!
Ответы
Ответ 1
Сделайте подкласс UIScrollView
. Добавьте этот метод в новый подкласс
- (BOOL)gestureRecognizer:(UIPanGestureRecognizer *)gestureRecognizer shouldRecognizeSimultaneouslyWithGestureRecognizer:(UISwipeGestureRecognizer *)otherGestureRecognizer
{
return YES;
}
Сделайте свой класс scrollView в новом подклассе scrollview.
Ответ 2
Метод Swift,
Необходимо добавить UIGestureRecognizerDelegate в ваш класс:
class ViewController: UIViewController, UIGestureRecognizerDelegate {
Вам нужно настроить свой делегат на себя:
override func viewDidLoad() {
super.viewDidLoad()
var scrollView = UIScrollView(frame: self.view.frame)
scrollView.delegate = self
}
Добавьте эту часть в методы класса к активным одновременным жестам:
func gestureRecognizer(gestureRecognizer: UIGestureRecognizer, shouldRecognizeSimultaneouslyWithGestureRecognizer otherGestureRecognizer: UIGestureRecognizer) -> Bool {
return true
}