UIView的-drawRect:是否必须在主线程上调用?

时间:2011-03-03 15:20:43

标签: iphone ios uiview

是否必须在主线程上绘制UIView的-drawRect:方法,或者CADisplayLink是否可以在不同的运行循环中调用自定义视图上的-setNeedsDisplay

2 个答案:

答案 0 :(得分:10)

As of iOS 4.0,您可以在后台线程的UIView -drawRect:内绘制:

  
      
  • 在UIKit中绘制到图形上下文现在是线程安全的。特别:      
        
    • 用于访问和操作图形上下文的例程现在可以正确处理驻留在不同线程上的上下文。
    •   
    • 字符串和图像绘制现在是线程安全的。
    •   
    • 现在可以安全地使用多个线程中的颜色和字体对象。
    •   
  •   

另请参阅他们在{4.0}中对此问题的评论。

之前的任何版本的iOS仍然需要将此绘图放在主线程上。

答案 1 :(得分:2)

所有UIKit调用都应该在主线程上完成。