美文网首页
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