我有一个自定义 UIView,它是 UITableViewCell 的子视图。绘制单元格时,我的自定义视图也是如此,在我的 UIView 子类中正确调用 drawRect:。重新加载单元格时,会正确绘制视图(drawRect:
被调用)。
当某个事件发生时(例如计时器),我想重绘视图而不必重新加载整个单元格。(这不是单元格中的唯一视图。)
但是,当我调用setNeedsDisplay
我的子视图时,什么也没有发生。
我猜当我的视图drawRect:
被调用时,生成的图像被缓存在某处的支持中,这样当我调用setNeedsDisplay
该支持时,该支持被重新绘制到屏幕上,但我的drawRect:
调用再也不会被调用。
为什么drawRect:
在创建单元格后不再调用?
编辑:单元格的子视图是从笔尖创建的。即:从 nib 加载 UIViewController,并将其视图添加到 UITableViewCell。
我使用不是从笔尖(由代码创建)加载的自定义视图从头开始制作了一个测试用例,它按预期工作:setNeedsDisplay
导致drawRect:
调用。它必须是在 .xib 文件中设置的东西,或者是在从 nib 加载视图时发生的与视图不同的东西。