如何使用 Scroll TransitionStyle 阻止 UIPageViewController 上的点击手势

Posted

技术标签:

【中文标题】如何使用 Scroll TransitionStyle 阻止 UIPageViewController 上的点击手势【英文标题】:How to block tap gesture on UIPageViewController with Scroll TransitionStyle 【发布时间】:2018-11-13 07:32:37 【问题描述】:

我想阻止点击手势(完美地只是左边框,但两者都可以,我将为其添加按钮)这是响应UIPageViewController中的更改页面。

我已经在“viewDidLoad”方法中尝试过这个解决方案:

for recognizer in gestureRecognizers 
    if recognizer is UITapGestureRecognizer 
        recognizer.isEnabled = false
    

但它仅适用于将TransitionStyle 设置为Page Curl 的情况,在我的情况下,我需要使用Scroll TransitionStyle

附言。我还在UIPageViewController 实现中发现了一条评论,只有当过渡样式为UIPageViewControllerTransitionStylePageCurl 时才会填充gestureRecognizers,因此需要一些更大的“hack”,希望您能帮助我。

pps。是的,我发现了这个 - UIPageViewController returns no Gesture Recognizers in ios 6。解决方案,但它很老而且在 objC 中,我很乐意在这里使用 Swift。

pps。在nil 上设置dataSource 将不起作用 - 我需要滑动手势。

【问题讨论】:

【参考方案1】:

您需要实现 UIGestureDelegate,然后在检测到此类手势时声明手势。

我认为here你可以看到很好的例子如何做到这一点

【讨论】:

这和我写的问题一样——它只对 UIPageViewControllerTransitionStylePageCurl 有效,对 Scroll TransitionStyle 无效。

以上是关于如何使用 Scroll TransitionStyle 阻止 UIPageViewController 上的点击手势的主要内容,如果未能解决你的问题,请参考以下文章

如何阻止使用.scroll时多次触发ajax调用?

vue中如何使用better-scroll实现横向滚动?

如何将infinite_scroll_pagination 用于块模式

如何使用标题 Scroll 使 android 导航抽屉可滚动

scroll-view里面的定位元素如何能同步滚动

如何将 core-scroll-header-panel 与 core-drawer-panel 一起使用