我有一个自定义的 UICollectionViewCell
,我通过像这样注册它来将其从 View Controller 中出列
[self.calendarView registerNib:[UINib nibWithNibName:NSStringFromClass([DayCell class]) bundle:nil] forCellWithReuseIdentifier:dayCell];
然后像这样出列
cell = [collectionView dequeueReusableCellWithReuseIdentifier:dayCell forIndexPath:indexPath];
我的问题是,哪个UICollectionViewCell
init 方法允许我访问单元格的reuseIdentifier
? awakeFromNib
和 initWithCoder:
方法都会被调用,但是,都会为 self.reuseIdentifier
记录 (null)
。
这是一个问题,因为我想使用相同的 UICollectionViewCell
类,但使用不同的 reuseIdentifier
来实现外观略有不同的单元格,并且我想执行样式设置一旦初始化。例如,具有 dayCellDisabled
reuseIdentifier
的单元格将具有较浅颜色的标签。
最佳答案
我发现有效的一个解决方案是不重写任何 init 或 awake 方法,而是在此方法中配置我的可重用 View
- (void)didMoveToSuperview {};
显然,当 View 被添加到其处理程序时,此方法仅被调用一次。我测试并确认了添加到 UICollectionView
中的可重用 UICollectionViewCell
的情况。
关于ios - 使用reuseIdentifier初始化UICollectionViewCell,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28636357/