如何使用具有不同滚动方向的多个collectionview滚动整个屏幕

Posted

技术标签:

【中文标题】如何使用具有不同滚动方向的多个collectionview滚动整个屏幕【英文标题】:How to scroll whole screen with multiple collectionview that have different scroll directions 【发布时间】:2018-04-03 12:44:40 【问题描述】:

我想要两个像这样滚动的集合视图:the goal

我已经实现了这一点,但是我遇到的问题是,当我向下滚动时,绿色集合视图会单独滚动而不是整个视图:collection view with scroll

然后我将滚动锁定在绿色集合视图中,并在整个屏幕上放置一个滚动视图。但是当您滚动时,集合视图会像这样被剪切:collectionview locked

我已经看到其他应用程序(如 medium)有两个可在两个方向滚动的集合视图,但我不知道必须实现这一点。 Medium home

为了让滚动视图能够滚动,我这样做是为了计算两个集合视图的高度,然后将高度设置为滚动视图:

var size : CGSize
let height = firstView.frame.height + 
secondview.collectionViewLayout.collectionViewContentSize.height
size = CGSize(self.view.frame.width,height)
scrollview.contentSize = size

我的猜测是,我可能想为绿色集合视图做同样的事情,但我还没有做到这一点。

谢谢!

【问题讨论】:

Horizontal UITableView的可能重复 【参考方案1】:

获取一个 UITableView(用于垂直滚动)。在表格视图的标题中放置一个集合视图(带有水平滚动)。通过这样做,您将拥有可水平滚动的视图,并且视图切割的问题将得到解决。此外,您不必为垂直滚动使用另一个视图。您将使用表格视图的单元格来实现这一点。

通过这种方式很容易实现像 Medium(或许多其他应用程序)这样的设计。一个表视图(垂直滚动),一个集合视图(水平滚动)作为表视图的标题,其余的一切都将由表视图管理。试试看吧。

【讨论】:

以上是关于如何使用具有不同滚动方向的多个collectionview滚动整个屏幕的主要内容,如果未能解决你的问题,请参考以下文章

swift 2中Collectionview多个部分的不同滚动方向

如何使收藏视图倒置?

如何在 iPad 中处理不同的滚动视图以改变方向?

我如何创建两个在不同方向上相互同步的可滚动列表

如何在一个滚动视图中有多个滚动视图

如何同时滚动多个tableview