ios - 使用reuseIdentifier初始化UICollectionViewCell

标签 ios objective-c initialization uicollectionviewcell reuseidentifier

我有一个自定义的 UICollectionViewCell,我通过像这样注册它来将其从 View Controller 中出列

[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 或 awake 方法,而是在此方法中配置我的可重用 View

- (void)didMoveToSuperview {};

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

关于ios - 使用reuseIdentifier初始化UICollectionViewCell,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28636357/

相关文章:

ios - 如何快速创建具有不可点击矩形区域的自定义表单按钮?

objective-c - 将 NSTableView 和 NSArrayController 绑定(bind)在一起

python - 在 __init__ 之外初始化字段

c++ - 使用任意值初始化/调整容器大小的建议方法

ios - 如何在 Swift 中从不同的 ViewController 重新加载 TableView 中的数据

php - 向多个设备发送推送消息

ios - 多次调用 stringByAppendingPathComponent() 会覆盖旧文件吗?

ios - 由于自动布局和大量 subview ,关闭 VC 非常慢

iphone - 初始化/清除字符串变量 cocoa 的最佳方法

ios - 是否需要将 scrollview.delegate 设置为 self?