在uitableviewcell的layoutSubviews中,有类似的逻辑
switch(enum_instance){ }
enum_instance 从某个地方更改,例如在一个计时器中,然后 setNeedLayout 触发 layoutSubviews
但是 layoutSubviews 中的 enum_instance 不会更新。这是错误吗?还是我做错了什么?
谢谢,
在uitableviewcell的layoutSubviews中,有类似的逻辑
switch(enum_instance){ }
enum_instance 从某个地方更改,例如在一个计时器中,然后 setNeedLayout 触发 layoutSubviews
但是 layoutSubviews 中的 enum_instance 不会更新。这是错误吗?还是我做错了什么?
谢谢,
发生这种情况是因为UITableViewCells 被回收。滚动tableView将在dequeueReusableCellWithIdentifier:调用时随机播放单元格。这意味着layoutIfNeeded我在错误的单元格上被调用(滚动后,该单元格可能被分配给另一个indexPath)。设置单元属性的唯一安全位置是tableView:cellForRowAtIndexPath:应配置单元的位置。
更简单的方法是重新计算 和 内的单元tableView:heightForRowAtIndexPath:格tableView:cellForRowAtIndexPath:。可以通过为要重绘的单元格调用reloadRowsAtIndexPaths:withRowAnimation:提供数组来重新触发此方法。indexPath