iOS 开发 - CollectionView Test 记录

首先storyboard拖拽进一个CollectionView,连接到.m,创建属性。

当前viewController继承<UICollectionViewDataSource,UICollectionViewDelegate,UICollectionViewDelegateFlowLayout>

viewDidLoad方法中加上

self.collectionView.delegate = self;
    self.collectionView.dataSource = self;

添加代理方法
-(NSInteger)numberOfSectionsInCollectionView:(UICollectionView *)collectionView {
    return 1;
}

-(NSInteger)collectionView:(UICollectionView *)collectionView numberOfItemsInSection:(NSInteger)section {
    return [menuData count];
}

-(UICollectionViewCell *)collectionView:(UICollectionView *)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath {
//    UICollectionViewCell * cell = (UICollectionViewCell *)[collectionView dequeueReusableCellWithReuseIdentifier:@"CollectionCell" forIndexPath:indexPath];
    
    XYZGGCollectionViewCell * cell = [collectionView dequeueReusableCellWithReuseIdentifier:@"cell" forIndexPath:indexPath];

    cell.cellLabel.text = menuData[indexPath.row];
    return cell;
}

其中cell使用新类控制。

创建CollectionViewCell类,继承自UICollectionViewCell,带xib。

xib中设置cell视图。

在自定义CollectionViewCell类中添加方法

-(instancetype)initWithFrame:(CGRect)frame {
    self = [super initWithFrame:frame];
    if (self)
    {
        // 初始化时加载collectionCell.xib文件
        NSArray *arrayOfViews = [[NSBundle mainBundle] loadNibNamed:@"XYZGGCollectionViewCell" 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;
}

在使用collectionViewcontroller中的viewDidLoad中添加

[self.collectionView registerClass:[XYZGGCollectionViewCell class] forCellWithReuseIdentifier:@"cell"];



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值