我已经创建了一个UICollectionViewCell -
@interface ListCell : UICollectionViewCell
@property(nonatomic,strong) IBOutlet UILabel *lblAppName;
@end
我已经制作了一个相同的xib,制作了所有IBOutlet集合以及设置了XIB的类,而在Collection视图委托方法中使用这个Cell时,我在尝试访问标签实例时获得了一个nill值。
- (UICollectionViewCell *)collectionView:(UICollectionView *)cv cellForItemAtIndexPath:(NSIndexPath *)indexPath {
ListCell *cell = (ListCell *)[cv dequeueReusableCellWithReuseIdentifier:@"ListCell" forIndexPath:indexPath];
AppDetails *temp=[arrApplist objectAtIndex:indexPath.item];
cell.lblAppName.text=temp.strName;
return cell;
}
我已将单元格注册到我的集合视图中:
[collectionView registerClass:[ListCell class] forCellWithReuseIdentifier:@"ListCell"];
还有什么我可能会遗漏? 提前谢谢。
答案 0 :(得分:1)
我认为您需要使用registerNib:forCellWithReuseIdentifier:来注册xib,而不是注册该类。试试看,看看是否有帮助。
答案 1 :(得分:1)
如果您使用ListCell.xib,请使用registerNib:forCellWithReuseIdentifier:。 在awakeFromNib中实现ListCell初始化而不是initWithFrame。 并改变类型:
- (ListCell *)collectionView:(UICollectionView *)cv cellForItemAtIndexPath:(NSIndexPath *)indexPath {
ListCell *cell = [cv dequeueReusableCellWithReuseIdentifier:@"ListCell" forIndexPath:indexPath];
cell.lblAppName.text=(NSString *);
return cell;
}