包含但不滚动的UIViews的水平列表

时间:2018-02-08 20:28:17

标签: ios swift uicollectionview

我想一个接一个地水平显示UIViews列表,如果行上没有足够的空间,我希望它们换行。

案例1:线上有足够的空间

| [VIEW1] [VIEW2] [VIEW3]         |

案例2:线上没有足够的空间

| [VIEW1] [VIEW2]                 |
| [VIEW3 IS TOO LONG SO IT WRAP]  |

完全 UICollectionView + flowLayout是什么,但我不想要任何滚动。我的问题可能是“如何禁用滚动并显示UICollectionView的所有内容?”

感谢。

注意:当然,视图的数量是动态的,所有这些视图的宽度都不同。

2 个答案:

答案 0 :(得分:1)

collectionView上添加显式高度约束,并将其高度设置为:

self.collectionViewHeightConstraint.constant = self.collectionView.contentSize.height

重新加载集合视图后(您希望已经计算contentSize)。

由于collectionView将与其内容一样高,因此不需要滚动。

当然,您希望正确约束集合视图的左侧和右侧。

答案 1 :(得分:0)

UICollectionView继承自UIScrollView,因此您可以将collectionView.contentSize修改为小于宽度(或高度,具体取决于您不希望滚动的方式)它的父视图,它不会滚动。