如何使用具有不同滚动方向的多个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滚动整个屏幕的主要内容,如果未能解决你的问题,请参考以下文章