【发布时间】:2015-02-20 19:03:00
【问题描述】:
我有一个自定义 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 类但使用不同的reuseIdentifiers 来实现外观略有不同的单元格,并且我想在初始化时执行一次样式设置。例如,带有dayCellDisabled reuseIdentifier 的单元格将具有较浅颜色的标签。
【问题讨论】:
-
为什么不在Interface Builder中配置颜色?
-
因为我想根据reuseIdentifier应用不同的颜色
-
我不确定我是否遵循。每个重用标识符都必须与一个单独的
UICollectionViewCell实例相关联,那么为什么不对 IB 中的每个单元格应用颜色,因为无论如何您都是在那里创建它们的? -
说,我想拥有相同的自定义复杂单元格,其中包含两种不同颜色的文本。创建两个单独的 xib 只是为了更改标签颜色并在 IB 中分配不同的重用标识符将是一种浪费。所以,我想根据代码中的reuseIdentifier设置不同的标签颜色。
标签: ios objective-c initialization uicollectionviewcell reuseidentifier