带有reuseIdentifier的UICollectionViewCell init

时间:2015-02-20 19:03:01

标签: ios objective-c initialization uicollectionviewcell reuseidentifier

我有一个自定义UICollectionViewCell,我通过注册它从我的视图控制器中取消它

[self.calendarView registerNib:[UINib nibWithNibName:NSStringFromClass([DayCell class]) bundle:nil] forCellWithReuseIdentifier:dayCell];

然后像这样出队

cell = [collectionView dequeueReusableCellWithReuseIdentifier:dayCell forIndexPath:indexPath];

我的问题是, UICollectionViewCell init方法允许我访问单元格reuseIdentifier ?调用awakeFromNibinitWithCoder:方法,但(null)都记录self.reuseIdentifier

这是一个问题,因为我想使用相同的UICollectionViewCell类但使用不同的reuseIdentifier来实现看起来略有不同的单元格,并且我想在初始化时执行一次样式化。例如,dayCellDisabled reuseIdentifier的单元格会有一个较浅颜色的标签。

1 个答案:

答案 0 :(得分:1)

我发现一个解决方案是不覆盖任何init或awake方法,但是在此方法中配置我的可重用视图

- (void)didMoveToSuperview {};

显然,当将视图添加到其处理程序时,此方法仅被调用一次。我测试并确认了UICollectionViewCell添加到UICollectionView的可重用{{1}}的情况。