自定义UICollectionView布局

标准的UICollectionView布局,只能实现网格式的展现形式。如果要实现瀑布流,或者Apple Pay银行卡类似的布局,就需要自定义layout。

Layout类

UICollectionViewLayout 抽象类,不能直接使用。

UICollectionViewFlowLayout 具体类,是UICollectionViewLayout的子类,实现了基本的网格布局功能,可以直接设置行间距、列间距等,可满足一般情况下的layout需求。

自定义Layout

需自定义UICollectionViewLayout的子类,并实现以下方法:

prepare() 布局之前的准备工作。

collectionViewContentSize() 计算出contentSize。

layoutAttributesForElements(in rect: CGRect) 返回layoutAttributes对象的数组,用于显示每个item的layout。

targetContentOffset(forProposedContentOffset proposedContentOffset: CGPoint, withScrollingVelocity velocity: CGPoint) 定义collectionView停止滑动时,应该停留的位置offset信息(例如将当前item居中)。

源码学习

FSPagerView

你可能感兴趣的:(自定义UICollectionView布局)