UICollectionView使用的时候,总是碰到各种问题,网上的解决方案 很多,我在此不再一一说明,基本的使用去百度就好了
我这里记录两个问题:
1. could not dequeue a view of kind: UICollectionElementKindCell with identifier
解决方案:
UICollectionViewFlowLayout *flowLayout = [[UICollectionViewFlowLayout alloc] init];
[flowLayout setScrollDirection:UICollectionViewScrollDirectionVertical];
collView = [[UICollectionView alloc] initWithFrame:CGRectMake(10, height + 10, ScreenWidth-20, (ScreenWidth-20)/3*2+20) collectionViewLayout:flowLayout];
[collView registerClass:[GoodsTypeCollectionViewCell class] forCellWithReuseIdentifier:@"GoodsTypeCollectionViewCell"];
collView.backgroundColor=[UIColor clearColor];
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 = [[NSBundle mainBundle] loadNibNamed:@"GoodsTypeCollectionViewCell" 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;
}
问题解决