ios - ScrollView 的滚动 vs uipageviewcontroller 幻灯片

标签 ios uiscrollview uigesturerecognizer uipageviewcontroller

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

最佳答案

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 的类,它应该以更高的优先级滚动,然后是页面 Controller 。

关于ios - ScrollView 的滚动 vs uipageviewcontroller 幻灯片,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22274391/

相关文章:

ios - 无法在 TableView 上设置自定义长按手势识别器

IOS离线缓存WebView内容

ios - 如何在 IOS Apps Swift 中处理强制关闭

php - 在接收文件上写什么脚本?

iOS 10 问题 : UIScrollView Not Scrolling, 即使设置了 ContentSize

ios - 为 UIScrollView 子类设置缩放

ios - 想要从下拉列表中选择选项并根据所选选项更改按钮标题...如何?

ios - 如何在 Swift 中实现 UIPageControl

iphone - UITableView 中的 UIGestureRecognizer - 滚动后崩溃?

ios - 避免触发 touchesBegan : until a swipe gesture recognizer fails