使用reuseIdentifier的UICollectionViewCell初始化



我有一个自定义的UICollectionViewCell,我通过像一样注册它,将它从视图控制器中退出队列

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

然后像那样排队

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

我的问题是,哪个UICollectionViewCell init方法允许我访问单元格的reuseIdentifierawakeFromNibinitWithCoder:方法都会被调用,但是,它们都会为self.reuseIdentifier记录(null)

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

我发现一个有效的解决方案是不覆盖任何init或唤醒方法,而是在这个方法中配置我的可重用视图

- (void)didMoveToSuperview {};

显然,当视图被添加到其处理程序时,这个方法只被调用一次。我测试并确认了添加到UICollectionView中的可重用UICollectionViewCell的情况。

最新更新