一. UICollectionViewFlowLayout布局方式:
二.继承 UICollectionViewLayout 的布局方式:
-(UICollectionViewLayoutAttributes *)layoutAttributesForItemAtIndexPath:(NSIndexPath *)indexPath;
-(UICollectionViewLayoutAttributes*)layoutAttributesForSupplementaryViewOfKind:(NSString *)elementKind atIndexPath:(NSIndexPath *)indexPath
-(UICollectionViewLayoutAttributes *)layoutAttributesForDecorationViewOfKind:(NSString *)elementKind atIndexPath:(NSIndexPath *)indexPath
UICollectionViewLayoutAttributes的对象的创建方法:
三.自定义supplementary views和Cells
添加supplementary view到layout中的过程如下:
1 注册supplementary view到layout对象中,registerClass:forSupplementaryViewOfKind:withReuseIdentifier: or registerNib:forSupplementaryViewOfKind:withReuseIdentifier:
2 在datasource中实现collectionView:viewForSupplementaryElementOfKind:atIndexPath:,由于这些view是可重用的,调用dequeueReusableSupplementaryViewOfKind:withReuseIdentifier:forIndexPath:来获取可用的view
cell 的创建类似,cell 和 supplementary view唯一不同的是 cell 只能有一个supplementary view可以有多个。
四.Decoration Views的创建
Decoration Views是layout UI特征的有效点缀,与cell和supplementary view不同的是,它只做外观呈现用,所以与datasource无关。可以用来提供自定义背影,在Cells缝隙之间填充,甚至可以掩盖cell,它完全由layout对象控制。
在layout中添加Decoration view步骤如下:
1 用registerClass:forDecorationViewOfKind: or registerNib:forDecorationViewOfKind: method方法注册自定义的decoration view,但记住是在layout对象中注册
2 layout对象中layoutAttributesForElementsInRect:方法中为decoration view创建属性
3 实现layoutAttributesForDecorationViewOfKind:atIndexPath:方法并在请求时返回decoration view的布局属性
基于以上内容写了一个超级课程表: https://github.com/mrHuangWenHai/--CollectionView-Course-List.git