【问题标题】:ScrollView's scroll vs uipageviewcontroller slideScrollView 的滚动 vs uipageviewcontroller 幻灯片
【发布时间】:2014-03-08 20:05:04
【问题描述】:

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

【问题讨论】:

  • 我使用了 [currentPDFScroll becomeFirstResponder];但也不起作用
  • 实际上我通过修复其他错误找到了解决方法...我想从适合 pdf 页面宽度的大于 1 的缩放开始,之后垂直拖动实际上被滚动捕获查看,所以这不再是问题:)

标签: ios uiscrollview uigesturerecognizer uipageviewcontroller


【解决方案1】:

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

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

PDFController 是您的类,其中包含滚动视图,滚动视图的滚动优先级高于页面控制器。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-04-21
    • 1970-01-01
    • 1970-01-01
    • 2019-04-11
    • 1970-01-01
    相关资源
    最近更新 更多