多种Cell的CollectionView

制作拥有两个Cell的TableView还是比较容易的,创建一个拥有多种类型Cell的CollectionView还是需要一点设计的。

 

首先需要创建一个继承UICollectionViewFlowLayout的layout,用来指定不同的cell在CollectionView中如何正确的显示。

 

需要实现的方法:

  • (CGSize)collectionViewContentSize 用来指定CollectionView的显示范围
  • (UICollectionViewLayoutAttributes *)layoutAttributesForSupplementaryViewOfKind:(NSString *)kind atIndexPath:(NSIndexPath *)indexPath 用来指定一个Hedaer的frame

 

 

  • (UICollectionViewLayoutAttributes *)layoutAttributesForItemAtIndexPath:(NSIndexPath *)indexPath 设置单个Cell的UICollectionViewLayoutAttributes

 

 

  • (NSArray *)layoutAttributesForElementsInRect:(CGRect)rect设置每个cell的LayoutAttributes数组

 

 

 

由于Layout没有DataSource,这里设计了一个协议让layout能了解到DataSource。

 

@protocol GHTreasureLayoutDataSource <NSObject>

 

// 指定每个Cell的CGRect

- (CGRect)treasureLayout:(GHTreasureLayout *)layout eachFrameForItemAtIndexPath:(NSIndexPath *)indexPath;

 

// 用于指定CollectionView的显示范围

- (CGSize)collectionViewContentSize:(GHTreasureLayout *)layout;

 

@end

 

 

这里只能简单的介绍了一下思路,具体的代码请下载Demo代码。

 

链接: http://pan.baidu.com/s/1mgDWc8w 密码: r2aa

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值