在 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' 设置为 'UICollectionViewScrollDirectionHorizo​​ntal' 即可获得所需的内容。

关于 UICollectionViewLayout:

UICollectionViewLayout 意味着子类化。 您需要重写那里的一些方法才能获得特定的布局。 查看文档或 WWDC 2012 视频教程。

【讨论】:

我认为scrollDirection 属性只控制从左到右的行环绕的位置,它不会使它们布局为从上到下的列。 刚刚测试过——它有效!只需将 scrollDirection 设置为“UICollectionViewScrollDirectionHorizo​​ntal”,它就可以满足他的需要......(我正在编辑我的答案) 天哪,你说得对。这就是我一大早发帖的结果。非常感谢。【参考方案2】:

这可能会为您指明正确的方向:https://github.com/chiahsien/UICollectionViewWaterfallLayout

您可能想要创建自己的布局子类,这并不像听起来那么难。看这个教程:http://skeuo.com/uicollectionview-custom-layout-tutorial

【讨论】:

以上是关于在 iOS 上,你可以使用 UICollectionViewFlowLayout 来获得垂直列布局吗?的主要内容,如果未能解决你的问题,请参考以下文章

IOS中集合视图UICollectionView中DecorationView的简易使用方法

iPad升级到iOS11可在屏幕上同时运行4个应用程序,你知道怎么做吗?

自动调整嵌入在 UITableView 中的 UICollectionView 单元格不起作用

在ios中的图像上绘制渐变

集合视图单元格宽度不正确

如何使用React Native接收在iOS上导出/共享的文件