该怎么说呢,这是一个很坑的事情,今天在完成一个界面的时候,用了xib来自定义UICollectionViewCell。其实这是一个很简单的过程,关键代码也就包括下面的两部分:
//注册集合视图单元格
UINib *nib = [UINib nibWithNibName:@"MyCollectionCell"
bundle: [NSBundle mainBundle]];
[_collectionView registerNib:nib forCellWithReuseIdentifier:@"MyCollectionCellID"];
//使用集合视图单元格
- (UICollectionViewCell *)collectionView:(UICollectionView *)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath{
MyCollectionCell *cell = [collectionView dequeueReusableCellWithReuseIdentifier:@"MyCollectionCellID" forIndexPath:indexPath];
cell.dataDic = self.itemList[index];
return cell;
}
但是问题是,在这些过程完成之后,自定义的单元格对象cell是可以获取,但是其上与代码文件关联的视图对象却都是nil。 我去,我整整找了一个多小时的问题,却被一次不经意的clean重新编译把问题解决了。
回想一下编码的过程,我刚开始使用了autolayout,后来没有使用了,我想可能就是因为反复修改之后的编译缓存带来的问题。
唉,不得不说xocde的bug还是不少的,在这里记下这个坑,希望对大家有用。如果在此之后上面的控件仍然为nil, 那么,亲,你是真的写错了代码。。。。
网友评论