【发布时间】:2010-06-30 08:41:35
【问题描述】:
我有一个自定义UITableViewCell。它有一个UIView,它被添加到UITableViewCell 的“contentView”中。对于任何更新,我通过调用它的“setNeedsDisplay”并在 UIView 的“drawRect”方法中实现绘图来重绘 UIView。
UITableViewCell 覆盖“willTransitionToState”并根据位掩码值要求 UIView 重绘。
因为我要求UIView 重新绘制自身,所以每次我“滑动删除”时,我都会看到单元格“闪烁”片刻;甚至由于删除按钮而没有移动位置的文本也会出现闪烁,因为所有内容都在重绘。
我知道一个可能的解决方案不是从“willTransitionToState”调用 UIView 的“setNeedsDisplay”,而是调用“setNeedsLayout” strong>”并让 UIView 实现“layoutSubviews”。
这就是我所困的地方:我如何重新布局我的UIView,因为我的UIView 中的所有内容都是“drawn”(我使用“drawInRect”和“drawAtPoint”字符串和图像的方法)。当“Delete”按钮出现时(就像在 iPhone 中的消息应用程序中一样),右侧还有一个字符串我想隐藏。
如何通过重新布局而不是重新绘制来做到这一点?
谢谢!!!
【问题讨论】:
标签: iphone uiview uitableview