IOS中UICollectionViewCell的问题

来源:互联网 发布:压缩感知重构算法 编辑:程序博客网 时间:2024/05/18 14:14

UICollectionView使用的时候,总是碰到各种问题,网上的解决方案 很多,我在此不再一一说明,基本的使用去百度就好了

我这里记录两个问题:

1. could not dequeue a view of kind: UICollectionElementKindCell with identifier


解决方案:

 UICollectionViewFlowLayout *flowLayout = [[UICollectionViewFlowLayoutalloc] init];

    [flowLayout setScrollDirection:UICollectionViewScrollDirectionVertical];

    collView = [[UICollectionViewalloc] initWithFrame:CGRectMake(10, height +10, ScreenWidth-20, (ScreenWidth-20)/3*2+20)collectionViewLayout:flowLayout];


    [collViewregisterClass:[GoodsTypeCollectionViewCellclass] forCellWithReuseIdentifier:@"GoodsTypeCollectionViewCell"];

    collView.backgroundColor=[UIColorclearColor];

    collView.dataSource =self;

    collView.delegate =self;


  标红色的字体一定不能忘,问题解决


2. 自定义的GoodsTypeCollectionViewCell中 有两个标签:ImageView和label, 刚开始的时候在

-(UICollectionViewCell *)collectionView:(UICollectionView *)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath

这个方法中实例化cell ,cell中的这两个标签总是nil


  解决方案:在cell的.m文件中加如下方法

- (id)initWithFrame:(CGRect)frame

{

    self = [super initWithFrame:frame];

    if (self)

    {

        // 初始化时加载collectionCell.xib文件

        NSArray *arrayOfViews = [[NSBundlemainBundle] loadNibNamed:@"GoodsTypeCollectionViewCell"owner:self options:nil];

        

        // 如果路径不存在,return nil

        if (arrayOfViews.count <1)

        {

            return nil;

        }

        // 如果xibview不属于UICollectionViewCell类,return nil

        if (![[arrayOfViews objectAtIndex:0] isKindOfClass:[UICollectionViewCellclass]])

        {

            return nil;

        }

        // 加载nib

        self = [arrayOfViews objectAtIndex:0];

    }

    return self;

}

问题解决



0 0
原创粉丝点击