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