美文网首页
UICollectionView详解:2-数据源协议DataSo

UICollectionView详解:2-数据源协议DataSo

作者: 赵亦晨 | 来源:发表于2016-11-08 16:32 被阅读0次

CollectionView的数据源协议为集合视图的Cell提供了数据来源,其基本使用方法与TableView的数据源方法类似,但区别在于集合视图需要提前注册Cell。

1、注册Cell

在viewDidLoad方法中,对Cell进行预先注册,可以通过代码来创建Cell,也可以通过XIB来创建Cell,两种创建方式分别对应不同的注册方法。

-(void)registerClass:(nullableClass)cellClass forCellWithReuseIdentifier:(NSString*)identifier;

-(void)registerNib:(nullableUINib*)nib forCellWithReuseIdentifier:(NSString*)identifier;

示例:

staticNSString*cellID=@"MYCollectionCell";

[self.collectionView registerNib:[UINibnibWithNibName:@"MYCollectionCell"bundle:[NSBundlemainBundle]]forCellWithReuseIdentifier:cellID];

2、数据源方法实现

设置CollectionView的DataSource属性,指定数据源;

实现如下方法:

@protocolUICollectionViewDataSource

@required

-(NSInteger)collectionView:(UICollectionView*)collectionView numberOfItemsInSection:(NSInteger)section;

-(UICollectionViewCell*)collectionView:(UICollectionView*)collectionView cellForItemAtIndexPath:(NSIndexPath*)indexPath;

@optional

-(NSInteger)numberOfSectionsInCollectionView:(UICollectionView*)collectionView;

@end

示例:

-(NSInteger)numberOfSectionsInCollectionView:(UICollectionView*)collectionView

{

return2;

}

-(NSInteger)collectionView:(UICollectionView*)collectionView numberOfItemsInSection:(NSInteger)section{

return9;

}

-(UICollectionViewCell*)collectionView:(UICollectionView*)collectionView cellForItemAtIndexPath:(NSIndexPath*)indexPath{

MYCollectionCell*cell=[collectionView dequeueReusableCellWithReuseIdentifier:cellID forIndexPath:indexPath];

cell.backgroundColor=[UIColoryellowColor];

returncell;

}

相关文章

网友评论

      本文标题:UICollectionView详解:2-数据源协议DataSo

      本文链接:https://www.haomeiwen.com/subject/dnnauttx.html