我有一个自定义UICollectionViewCell
,我通过注册它从我的视图控制器中取消它
[self.calendarView registerNib:[UINib nibWithNibName:NSStringFromClass([DayCell class]) bundle:nil] forCellWithReuseIdentifier:dayCell];
然后像这样出队
cell = [collectionView dequeueReusableCellWithReuseIdentifier:dayCell forIndexPath:indexPath];
我的问题是, UICollectionViewCell
init方法允许我访问单元格reuseIdentifier
?调用awakeFromNib
和initWithCoder:
方法,但(null)
都记录self.reuseIdentifier
。
这是一个问题,因为我想使用相同的UICollectionViewCell
类但使用不同的reuseIdentifier
来实现看起来略有不同的单元格,并且我想在初始化时执行一次样式化。例如,dayCellDisabled
reuseIdentifier
的单元格会有一个较浅颜色的标签。
答案 0 :(得分:1)
我发现一个解决方案是不覆盖任何init或awake方法,但是在此方法中配置我的可重用视图
- (void)didMoveToSuperview {};
显然,当将视图添加到其处理程序时,此方法仅被调用一次。我测试并确认了UICollectionViewCell
添加到UICollectionView
的可重用{{1}}的情况。