通过Xib创建 UICollectionView 和自定义UICollectionViewCell
Posted fantasy3588
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了通过Xib创建 UICollectionView 和自定义UICollectionViewCell相关的知识,希望对你有一定的参考价值。
1。在控制器的viewDidLoad方法中添加代码
CGFloat itemWidth = (kScreenW - kSpacingW * 3) / 2;
NSLog(@"itemWidth == %f",itemWidth);
CGFloat itemHeight = itemWidth * 0.75 + 71;
NSLog(@"itemWidth == %f",itemHeight);
UICollectionViewFlowLayout*layout = [[UICollectionViewFlowLayout alloc]init];
layout.itemSize = CGSizeMake(itemWidth, itemHeight);
layout.minimumInteritemSpacing = kSpacingW;
layout.minimumLineSpacing = kSpacingW;
layout.sectionInset = UIEdgeInsetsMake(0, kSpacingW, 0, kSpacingW);
self.collectionView = [[UICollectionView alloc]initWithFrame:self.view.bounds collectionViewLayout:layout];
[self.view addSubview:self.collectionView];
self.collectionView.dataSource = self;
self.collectionView.delegate = self;
self.collectionView.backgroundColor = [UIColor whiteColor];
[self.collectionView registerClass:[HotCell class] forCellWithReuseIdentifier:@"HotCell"];
2.实现collectionView的代理方法
- (NSInteger)collectionView:(UICollectionView *)collectionView numberOfItemsInSection:(NSInteger)section
{
return 10;
}
- (UICollectionViewCell *)collectionView:(UICollectionView *)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath
{
HotCell *cell = [collectionView dequeueReusableCellWithReuseIdentifier:@"HotCell" forIndexPath:indexPath];
cell.backgroundColor = [UIColor whiteColor];
return cell;
}
3.通过XIB自定义cell
- (instancetype)initWithFrame:(CGRect)frame
{
self = [super initWithFrame:frame];
if (self) {
// 初始化时加载collectionCell.xib文件
NSArray *arrayOfViews = [[NSBundle mainBundle] loadNibNamed:@"HotCell" owner:self options:nil];
// 如果路径不存在,return nil
if (arrayOfViews.count < 1) {
return nil;
}
// 如果xib中view不属于UICollectionViewCell类,return nil
if (![[arrayOfViews objectAtIndex:0] isKindOfClass:[UICollectionViewCell class]]) {
return nil;
}
// 加载nib
self = [arrayOfViews objectAtIndex:0];
}
return self;
}
以上是关于通过Xib创建 UICollectionView 和自定义UICollectionViewCell的主要内容,如果未能解决你的问题,请参考以下文章
使用 Xib 创建 UICollectionView/UICollectionViewController 组件并在 UIViewController 中实现
将附加视图插入从 Xib 加载的 UICollectionView
UICollectionView 自定义组头组尾的XIB方法
使用 Xib 时 UITableView 和 UICollectionView 的实现有啥区别?