[1] Collection View 自定义布局

问题描述:

Collection View 的cell 根据内容调整高度(或宽度),实现瀑布流布局。

解决方案:

原生的 FlowLayout 显然不行,只有继承自 UICollectionViewLayout,使用自定义布局。步骤如下:

  1. 实现 prepare() 方法。主要计算每一个cell 的 layout attribute 和 collection view 的 content size。如果内容较少,可以缓存计算出的 layout attribute,方便复用。
  2. 实现 collectionViewContentSize 方法。提供由上一步计算出的content size。
  3. 实现 layoutAttributesForElements(in:) 方法。提供与显示区域相交的 layout attribute。
  4. 实现 layoutAttributesForItem(at:) 方法。提供与 indexPath 对应的 layout attribute。

参考资料:

  • UICollectionView Custom Layout Tutorial: Pinterest
  • Creating Custom Layouts

你可能感兴趣的:([1] Collection View 自定义布局)