UIView的-drawRect:是否必须在主线程上调用?
是否必须在主线程上绘制UIView的-drawRect:
方法,或者可以在不同的运行循环中的自定义视图上使用CADisplayLink调用-setNeedsDisplay
?
所有的UIKit调用应该在主线程上完成。
从iOS 4.0开始 ,您可以在后台线程中绘制UIView的-drawRect:
:
- 在UIKit中绘制graphics上下文现在是线程安全的。 特别:
- 用于访问和操作graphics上下文的例程现在可以正确地处理驻留在不同线程上的上下文。
- string和图像绘制现在是线程安全的。
- 在多个线程中使用颜色和字体对象现在是安全的。
在iOS 4.0中,也可以参考技术问答QA1637中的相关评论。
之前的任何版本的iOS仍然需要在主线程上绘制该图。