问题描述:
Collection View 的cell 根据内容调整高度(或宽度),实现瀑布流布局。
解决方案:
原生的 FlowLayout 显然不行,只有继承自 UICollectionViewLayout,使用自定义布局。步骤如下:
- 实现 prepare() 方法。主要计算每一个cell 的 layout attribute 和 collection view 的 content size。如果内容较少,可以缓存计算出的 layout attribute,方便复用。
- 实现 collectionViewContentSize 方法。提供由上一步计算出的content size。
- 实现 layoutAttributesForElements(in:) 方法。提供与显示区域相交的 layout attribute。
- 实现 layoutAttributesForItem(at:) 方法。提供与 indexPath 对应的 layout attribute。
网友评论