如何在垂直滚动其内容(集合视图)时启用 UIPageViewController 的页面滚动?

Posted

技术标签:

【中文标题】如何在垂直滚动其内容(集合视图)时启用 UIPageViewController 的页面滚动?【英文标题】:How to enable UIPageViewController's page scroll while scrolling its content vertically (a collection view)? 【发布时间】:2015-02-18 05:44:37 【问题描述】:

我正在制作一个像 SmartNews 这样的应用程序,它的 UIPageViewController 包含许多 UICollectionView 页面。

结构:

一个 UIPageViewController,页面水平滚动。 (过渡风格为 UIPageViewControllerTransitionStyleScroll) 其中的每个页面都包含一个垂直滚动一组单元格的 UICollectionView。 两个视图的大小相同,屏幕上的触摸区域很常见。

问题:

当收藏视图自行向下滚动时(即用户不再触摸屏幕但收藏视图仍在通过减速滚动),用户无法滑动页面。 似乎如果此时发生另一个平移手势,集合视图会跟踪它以停止当前滚动,并且不允许用户滑动页面视图控制器。

有没有办法让用户滚动页面(水平),而集合视图仍在滚动(垂直)?

(Instagram的搜索视图实现了这个功能。)

谢谢!

【问题讨论】:

这是针对同一问题的解决方案***.com/a/28558529/1192682 感谢您的评论。但这不是完全相同的问题,因为两个视图具有相同的大小并且屏幕上的输入区域是通用的。只是在滚动一个视图时,即使是另一个触摸,在延迟滚动期间也不能滚动另一个视图。 (检测到另一个触摸是为了停止延迟滚动,而不是开始另一个滚动) 【参考方案1】:

在这里找到了我想做的事情: Cross Directional UIScrollViews - Can I Modify the Scrolling Behaviour?

我猜对 UIPageController 做同样的事情是不安全的,因为它里面的滚动视图是无证的。 我将尝试用启用分页的 UISCrollView 替换 UIPageController。

【讨论】:

以上是关于如何在垂直滚动其内容(集合视图)时启用 UIPageViewController 的页面滚动?的主要内容,如果未能解决你的问题,请参考以下文章

如何启用垂直滚动的滚动条并禁用水平滚动?

如何在 iOS 中避免/禁用 Collection View 的垂直滚动

试图创建一个集合视图在滚动时滑过另一个集合视图的效果

垂直放置集合视图单元格而不是水平放置?

UICollectionview 动态高度问题

UICollectionView 垂直反弹不起作用