自定义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

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容