Drawing to a graphics context in UIKit is now thread-safe. Specifically:
– The routines used to access and manipulate the graphics
context can now correctly handle contexts residing on different
threads.
– String and image drawing is now thread-safe.
– Using color and
font objects in multiple threads is now safe to do.
到现在为止还挺好.有趣的部分是我有一个项目,在那里我做了一些精心的图纸,并通过使用UIGraphicsBeginImageContextWithOptions创建上下文来创建多个图像,但是当这些操作变得更加耗时,我只是在后台线程中移动绘图在屏幕上显示一些动画,一切都正常 – 没有崩溃,没有泄漏.图像按照预期绘制,似乎UIGraphicsBeginImageContextWithOptions创建了背景线程的上下文,一切似乎都很好.
所以我的问题是:
– 为什么只需要在主线程上调用UIGraphicsBeginImageContextWithOptions,因为它似乎在后台工作正常?
– 如何使用UIImage的-drawInRect:方法,例如在后台线程中,我没有当前的上下文,我似乎无法创建一个,因为我无法调用UIGraphicsBeginImageContextWithOptions?
– 使用UIKit的方法进行背景图像处理的正确方法是什么(我知道我也可以使用CGBitmapContextCreate,但是它也不会将创建的上下文推送到上下文堆栈中,也不能自己为此而使用-drawInRect: UIImage的方法)?