UICollectionView自定义布局

本文详细介绍了如何自定义UICollectionView布局,包括理解布局过程、核心任务、生成布局属性、使用附属视图和装饰视图等,并提供了一个具体的AWCollectionViewDialLayout实例代码,展示了自定义布局的实现细节。
摘要由CSDN通过智能技术生成

继承UICollectionViewLayout
     需要实现的核心任务:
1.指定滚动区域的尺寸
2.为布局中的每一个cell或view指定attribute对象,从而使collection view得到item的位置。
     在布局过程中,使用collectionView属性从数据源获取数据。
理解核心布局过程
     集合视图和布局对象协同工作,只要集合视图需要布局信息,就向布局对象询问。集合视图第一次出现,或者尺寸改变都会获取布局信息,可以显式调用invalidateLayout方法强制重新布局。
     invalidateLayout与reloadData区别很大,重新布局不会刷新数据。在数据源中的数据变化时,reloadData才是合适的。
在布局过程中,集合视图调用了布局对象中的几个特定方法:
     1.在prepareLayout方法中完成布局信息的预处理。
     2.在collectionViewContentSize中基于预处理完成全部计算。
     3.在layoutAttributesForElementsInRect:中返回设定好的attribute。
     invalidateLayout方法并不会马上开始布局更新,仅仅标记了布局需要更新,在下一次视图更新循环中,集合视图发现布局需要更新时,才会更新布局。
生成布局属性
     布局属性是UICollectionViewLayoutAttributes类的对象,使用以下方法生成布局属性:
1.layoutAttributesForCellWithIndexPath:
2.layoutAttributesForSupplementaryViewOfKind:withIndexPath:
3.layoutAttributesForDecorationViewOfKind:withIndexPath:
     至少为布局属性设置尺寸和位置,zIndex用于防止重叠,isEqual:方法需要重写,集合视图调用用于某些计算。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值