2

我有一个 custom UICollectionViewCell,我通过像这样注册它从我的视图控制器中取出它

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

然后像这样出队

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

我的问题是,哪种UICollectionViewCellinit 方法可以让我访问单元格的reuseIdentifierawakeFromNib和方法都initWithCoder:被调用,但是,都记录(null).self.reuseIdentifier

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

4

1 回答 1

2

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

- (void)didMoveToSuperview {};

显然,当视图被添加到它的处理程序时,这个方法只被调用一次。我测试并确认这UICollectionViewCell是添加到UICollectionView.

于 2015-02-22T08:36:19.290 回答