为UICollectionView的section设置背景颜色

工作中有个需求需要给CollectionView不同的section添加背景,当时在网上只找到了一份Swift的demo而我的项目又是用OC写的, 又不想混编, 没办法既然找不到OC索性就把这份代码翻译成OC吧, 然后就有了下面的代码, 顺便附上Swift代码


为UICollectionView的section设置背景颜色_第1张图片

UICollectionView 无法通过属性设置或数据源来为不同的 Section

设置不同的背景颜色,要想达到这样的效果就需要自定义自己的布局对象(UICollectionViewLayout)。自定义布局可以完全自定义布局,但这里我们只继承

UICollectionViewFlowLayout 还是使用系统内置的 Flow 布局。

那么 Section 的背景颜色是属于 UICollectionView 的那一块呢?它既不是 Cell 视图,也不是

Supplementary 视图,而是 UICollectionView 的 Decoration(装饰) 视图 。Decoration

视图不同与前两者, 它无法通过数据源来设置,而是由布局对象来定义和管理。

无论是定义 Cell 视图、Supplementary 视图还是 Decoration 视图都是通过它们的

attributes(UICollectionViewLayoutAttributes)来定义的。



OC版:https://github.com/704433701/JHCollectionViewSectionBackgroundDemo

Swift版:https://github.com/c0ming/SBCollectionViewFlowLayout

你可能感兴趣的:(为UICollectionView的section设置背景颜色)