UICollectionView详解:3-最简单的集合视图实现
本节内容通过示例代码演示了如何创建一个最简单的集合视图,从而验证了集合视图的初始化方法、单元格注册以及数据源协议的实现。
UICollectionView对象的创建
创建一个Single View Application工程
在ViewController.m中,设置控制器类遵守UICollectionViewDataSource协议,并且添加一个UICollectionView类型的属性
@interface ViewController ()<UICollectionViewDataSource>
@property(nonatomic,strong)UICollectionView *collectionView;
@end
- 当通过代码创建UICollectionView对象的时候,必须传递一个UICollectionViewLayout类型的对象作为参数。注意,这里我们提前创建的是UICollectionViewFlowLayout对象,而不是UICollectionViewLayout对象。UICollectionViewLayout是UICollectionViewFlowLayout的父类。
- (UICollectionView *)collectionView {
if (_collectionView == nil) {
UICollectionViewFlowLayout *flowLayout = [[UICollectionViewFlowLayout alloc]init];
_collectionView = [[UICollectionView alloc]initWithFrame:self.view.bounds collectionViewLayout:flowLayout];
_collectionView.dataSource = self;
_collectionView.backgroundColor = [UIColor whiteColor];
}
return _collectionView;
}
注册单元格
我们通常可以在viewDidLoad中注册集合视图中的单元格Cell,或者在创建集合视图对象时就注册单元格。
- (void)viewDidLoad {
[super viewDidLoad];
[self.view addSubview:self.collectionView];
[self.collectionView registerClass:[UICollectionViewCell class] forCellWithReuseIdentifier:@"cell"];
}
数据源方法的实现
在创建集合视图时,预先设置其dataSource属性,指定数据源,通常情况下是控制器对象,然后实现UICollectionViewDataSource协议中定义的必选方法。在下方的示例代码中,我们创建了100个类型为UICollectionViewCell的单元格,并且设置单元格的背景颜色为黄色。
- (NSInteger)collectionView:(UICollectionView *)collectionView numberOfItemsInSection:(NSInteger)section {
return 100;
}
- (__kindof UICollectionViewCell *)collectionView:(UICollectionView *)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath {
UICollectionViewCell *cell = [collectionView dequeueReusableCellWithReuseIdentifier:@"cell" forIndexPath:indexPath];
cell.backgroundColor = [UIColor yellowColor];
return cell;
}
运行效果:
示例代码
https://github.com/99ios/8.3.3
文章发布时间为: November 15th , 2016 at 05:28 pm
最后编辑时间为: September 13th , 2017 at 02:45 pm
本文由 99ios 创作,转载请注明出处
最后编辑时间为: September 13th , 2017 at 02:45 pm
本文由 99ios 创作,转载请注明出处