在 iOS 上,你可以使用 UICollectionViewFlowLayout 来获得垂直列布局吗?
Posted
技术标签:
【中文标题】在 iOS 上,你可以使用 UICollectionViewFlowLayout 来获得垂直列布局吗?【英文标题】:On iOS, can you use UICollectionViewFlowLayout to get a vertical column layout? 【发布时间】:2013-06-25 13:21:22 【问题描述】:UICollectionViewFlowLayout 从左到右连续移动,然后换行到下一行。我想要一个从上到下的布局,然后返回到下一列。可以把它想象成一个包装成多列的 UITableView,它可以水平滚动。
UICollectionViewFlowLayout 接近我想要的——我可以继承它还是必须继承 UICollectionViewLayout 并从头开始? (This answer 让我相信我不能使用流式布局。)
Visible Screen
[ 1 6 11 ] 16
[ 2 7 12 ] 17
[ 3 8 13 ] 18
[ 4 9 14 ]
[ 5 10 15 ]
【问题讨论】:
UICollectionView horizontal paging - can I use Flow Layout?的可能重复 【参考方案1】:您可以使用 UICollectionViewFlowLayout 来实现它 - 只需将属性 'scrollDirection' 设置为 'UICollectionViewScrollDirectionHorizontal' 即可获得所需的内容。
关于 UICollectionViewLayout:
UICollectionViewLayout 意味着子类化。 您需要重写那里的一些方法才能获得特定的布局。 查看文档或 WWDC 2012 视频教程。
【讨论】:
我认为scrollDirection
属性只控制从左到右的行环绕的位置,它不会使它们布局为从上到下的列。
刚刚测试过——它有效!只需将 scrollDirection 设置为“UICollectionViewScrollDirectionHorizontal”,它就可以满足他的需要......(我正在编辑我的答案)
天哪,你说得对。这就是我一大早发帖的结果。非常感谢。【参考方案2】:
这可能会为您指明正确的方向:https://github.com/chiahsien/UICollectionViewWaterfallLayout
您可能想要创建自己的布局子类,这并不像听起来那么难。看这个教程:http://skeuo.com/uicollectionview-custom-layout-tutorial
【讨论】:
以上是关于在 iOS 上,你可以使用 UICollectionViewFlowLayout 来获得垂直列布局吗?的主要内容,如果未能解决你的问题,请参考以下文章
IOS中集合视图UICollectionView中DecorationView的简易使用方法
iPad升级到iOS11可在屏幕上同时运行4个应用程序,你知道怎么做吗?