iOS UICollectionView自定义流水布局(一)
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了iOS UICollectionView自定义流水布局(一)相关的知识,希望对你有一定的参考价值。
参考技术A UICollectionViewFlowLayout创建UICollectionViewLayout对象,通过设置UICollectionViewLayout对象属性的值可以设置item的基本布局,包括大小,间距,内边距、滚动方向等
当系统的布局无论怎么设置都无法满足需求的时候,我们就需要自定义布局,重写其计算布局的方法。
上图是系统默认布局,下图是自定义布局,可以注意到系统布局是将item两端对齐,间距根据剩余的宽度自己缩放,UICollectionViewFlowLayout的minimumInteritemSpacing属性设置的是最小间距,但如果要设置间距相等,系统布局就实现不了了。
两种方案都是通过继承UICollectionViewFlowLayout,这两种方案本质上都是通过修改对应位置的item来实现的
1.//获取指定位置的cell的布局
2.重写layoutAttributesForItemAtIndexPath:方法返回指定indexPath的布局
1.重写prepareLayout,每次更新布局的时候collectionView都回先调用这个方法,为将要开始的更新做准备,此时会将计算好的布局存储起来
2.重写layoutAttributesForElementsInRect:方法返回指定区域的布局
3.重写并调用layoutAttributesForItemAtIndexPath方法计算布局
4.如果需要自定义分区头部和尾部可以重写下面两个方法,并在prepareLayout里面做相应的处理
demo: https://github.com/SunshineLily/CollectionViewFlowLayout
参考: https://blog.csdn.net/lg767201403/article/details/90518273
参考: https://www.jianshu.com/p/5ee9333644ed
以上是关于iOS UICollectionView自定义流水布局(一)的主要内容,如果未能解决你的问题,请参考以下文章
UIMenuController sharedMenuController - uicollectionview 的自定义菜单项不在 ios 7 中显示
iOS UiCollectionView - 使用自定义 UiCollectionViewLayout 重新加载数据
当 UICollectionView 位于 iOS 中的自定义 TableViewCell 中时,如何为 UICollectionView 实现委托和数据源方法,目标 C