UICollectionView 在创建的时候,要给它一个UICollectionViewFlowLayout (不然会崩溃),就像tableview一样,也要为它注册自定义的cell。
UICollectionViewFlowLayout *flowLayout = [[UICollectionViewFlowLayout alloc]init];
[flowLayout setScrollDirection:UICollectionViewScrollDirectionVertical];
//cell间距
flowLayout.minimumInteritemSpacing = 10.0f;
//cell行距
flowLayout.minimumLineSpacing = 20.0f;
//1.添加FlowLayout
UICollectionView *collectionView = [[UICollectionView alloc]initWithFrame:CGRectMake(0, 64, 320, [UIScreen mainScreen].bounds.size.height - 64) collectionViewLayout:flowLayout];
//2.为collection 注册cell(自定义的cell)
[collectionView registerNib:[UINib nibWithNibName:@"CarCollectionViewCell" bundle:nil] forCellWithReuseIdentifier:@"CarCollectionViewCell"];
还要为它设置代理和实现代理方法:
collectionView.backgroundColor = [UIColor whiteColor];
self.collectionView = collectionView;
self.collectionView.delegate = self;
self.collectionView.dataSource = self;
[self.view addSubview:self.collectionView];
设置cell的大小:
- (CGSize)collectionView:(UICollectionView *)collectionView layout:(UICollectionViewLayout *)collectionViewLayout sizeForItemAtIndexPath:(NSIndexPath *)indexPath { CGSize size = CGSizeMake(80, 100); return size; }
设置整体cell在collection中的上下左右边距:
- (UIEdgeInsets)collectionView:(UICollectionView *)collectionView layout:(UICollectionViewLayout*)collectionViewLayout insetForSectionAtIndex:(NSInteger)section{
return UIEdgeInsetsMake(30, 20, 0, 20);
}
在cellForItemAtIndexPath中使用自定义的cell,注意自定义cell的xib文件时,要加上identifier:
- (UICollectionViewCell *)collectionView:(UICollectionView *)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath{
CarCollectionViewCell *cell = (CarCollectionViewCell *)[collectionView dequeueReusableCellWithReuseIdentifier:@"CarCollectionViewCell" forIndexPath:indexPath];
...
...
...
return cell;
}
本文详细介绍了如何在UICollectionView中设置UICollectionViewFlowLayout,包括设置滚动方向、cell间距、行距及大小,以及如何注册和使用自定义的cell。同时,还讲解了如何设置代理和实现代理方法。
2万+

被折叠的 条评论
为什么被折叠?



