ScrollView的滚动与uipageviewcontroller幻灯片

时间:2014-03-08 20:05:04

标签: ios uiscrollview uigesturerecognizer uipageviewcontroller

我的问题类似于:UIScrollView cancels UIPageViewController gestures when scrolling但它仍然没有答案。我有一个uipageviewcontroller来显示pdf,每个控制器都是一个pdf页面...每个控制器都有一个滚动视图,显示pdf页面,以便用户可以滚动或放大页面。问题是“拖动”首先被pageviewcontroller(更改页面)“捕获”,即使它是垂直拖动。我想检测pageviewcontroller是否拖动vetical(在页面中垂直滚动),这意味着滚动从那里“捕获”任何拖动手势。现在我必须双击(缩放)或用2个手指进行缩放以告诉我的应用我希望滚动视图“捕捉”拖动手势(使其成为first responder或类似的东西) 。换句话说,我希望始终优先滚动更改页面。这是真的吗?请帮忙。

1 个答案:

答案 0 :(得分:0)

UIGestureRecognizer类可以使用requireGestureRecognizerToFail:方法设置对其他手势识别器的依赖关系。
在您的情况下,可以使用此方法:

for (UIGestureRecognizer *gestureRecognizerForFail in pageController.gestureRecognizers) {
    for (PDFController *pdfController in pdfControllers) {
        for (UIGestureRecognizer *gestureRecognizer in pdfController.scrollView.gestureRecognizers) {
            [gestureRecognizerForFail requireGestureRecognizerToFail:gestureRecognizer];
        }
    }
}

其中PDFController是包含scrollView的类,应该以更高的优先级滚动页面控制器。