我可以禁用UIPageViewController的页面边框手势识别器吗?保留滑动手势吗?

22

我看到可以移除UIPageViewController所有手势,但如果我只想移除边缘的轻敲手势,而保留滑动手势呢?这可行吗?

谢谢。

3个回答

36

尝试循环遍历pageViewController.gestureRecognizers,禁用其中的任何一个点击手势识别器。

Objective-C:

for (UIGestureRecognizer *recognizer in pageViewController.gestureRecognizers) {
    if ([recognizer isKindOfClass:[UITapGestureRecognizer class]]) {
        recognizer.enabled = NO;
    }
}

Swift:

for recognizer in pageViewController.gestureRecognizers {
    if recognizer is UITapGestureRecognizer {
        recognizer.isEnabled = false
    }
}

4
注意,这仅适用于UIPageViewControllerTransitionStylePageCurl。 - rcw3
它在我的iOS 6上使用UIPageViewControllerTransitionStylePageCurl和UIPageViewControllerTransitionStyleScroll都有效。 - Gustavo Barbosa

1
如果您需要在Swift中完成此操作:
    for recognizer in pageViewController.gestureRecognizers as! [UIGestureRecognizer] {
        if recognizer is UITapGestureRecognizer {
            recognizer.enabled = false
        }
    }

0

SWIFT 4.2 添加到viewDidLoad()

for recognizer in self.gestureRecognizers {
            if recognizer is UITapGestureRecognizer {
                recognizer.isEnabled = false
            }
        }

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接