学习UICollectionViewController的使用。
1.在创建的时候首先需要告诉控制器cell以什么样式显示 ,重写init初始化,在init方法中 UICollectionViewFlowLayout 控制cell的间距,大小,内边距
需要使用UICollectionViewDelegateFlowLayout 代理方法
- (instancetype)init
{
// 1.流水布局
UICollectionViewFlowLayout *layout =
[[UICollectionViewFlowLayout alloc] init];
// 2.每个cell的尺寸
layout.itemSize = CGSizeMake(80, 80);
// 3.设置cell之间的水平间距
layout.minimumInteritemSpacing = 0;
// 4.设置cell之间的垂直间距
layout.minimumLineSpacing = 10;
// 5.设置所有cell组成的一个整体与屏幕(ViewController)四周距离
layout.sectionInset =
UIEdgeInsetsMake(layout.minimumLineSpacing, 0, 0, 0);
return [super initWithCollectionViewLayout:layout];
}
2.在cell的创建时候,需要在界面初始化的时候告诉控制器cell的ID是多少,使用那一种cell,是自定义的,还是xib的 还是系统的。
1)注册cell(告诉collectionView将来创建怎样的cell)
[self.collectionView registerClass:[UICollectionViewCell class]
forCellWithReuseIdentifier:@"product"];
在调用- (UICollectionViewCell *)collectionView:(UICollectionView
*)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath;设置每个单元格显示的内容(UICollectionViewCell)之前必须注册cell,一般在viewDidLoad中调用上面方法注册cell。
例如:
- (void)viewDidLoad
{
[super viewDidLoad];
// 1.注册cell(告诉collectionView将来创建怎样的cell)
UINib *nib = [UINib nibWithNibName:@"MJProductCell" bundle:nil];
[self.collectionView registerNib:nib forCellWithReuseIdentifier:
MJProductCellID];//通过xid自定义的cell
/*
[self.collectionView registerClass:[UICollectionViewCell class] forCellWithReuseIdentifier:MJProductCellID];//使用默认的UICollectionViewCell
*/
3.cell跟tabview的区别还有一点是 cell的行是 indexPath。row
UICollectionViewCell的行是 indexPath。item