iOS   发布时间:2022-03-31  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了ios – UIGraphicsBeginImageContextWithOptions和多线程大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我对UIGraphicsBegin ImageContextWithOptions和线程有点困惑,因为根据 UIKit Function Reference UIGraphicsBeginImageContextWithOptions应该只在主线程上调用.当被调用时,它创建一个基于位图的上下文,可以使用COreGraphics的函数或者像-drawInRect这样的方法来处理:对于UIImage,-drawInRect:withFont:for NSString等等.对于CoreGraphics的绘图,一切都很清楚 – 你传递一个CGContextRef参数被操纵到每个函数,但UIKit绘图方法使用堆栈中的当前上下文.在 What’s New in iOS 4.0的发行说明中写道

到现在为止还挺好.有趣的部分是我有一个项目,在那里我做了一些精心的图纸,并通过使用UIGraphicsBeginImageContextWithOptions创建上下文来创建多个图像,但是当这些操作变得更加耗时,我只是在后台线程中移动绘图在屏幕上显示一些动画,一切都正常 – 没有崩溃,没有泄漏.图像按照预期绘制,似乎UIGraphicsBeginImageContextWithOptions创建了背景线程的上下文,一切似乎都很好.
所以我的问题是:
– 为什么只需要在主线程上调用UIGraphicsBeginImageContextWithOptions,因为它似乎在后台工作正常?
– 如何使用UIImage的-drawInRect:方法,例如在后台线程中,我没有当前的上下文,我似乎无法创建一个,因为我无调用UIGraphicsBeginImageContextWithOptions?
– 使用UIKit的方法进行背景图像处理的正确方法是什么(我知道我也可以使用CGBitmapContextCreate,但是它也不会将创建的上下文推送到上下文堆栈中,也不能自己为此而使用-drawInRect: UIImage的方法)?

解决方法@H_197_10@
所以,经过几天的调查之后,操作UIKit上下文的操作方式是线程安全的,但你似乎无法在一个线程之外创建一个除了主程序,因为UIGraphicsBeginImageContextWithOptions“应该只在主程序中调用线程“,但仍然这样做的工作是完美的,在阅读了一些关于这个主题的小帖子,并与苹果开发者论坛上的其他人讨论,我可以清楚地说明,在UIGraphicsBeginImageContextWithOptions,UIGraphicsPushContext和UIGraphicsPopContext的文档中有什么说是错误的,那些可以调用方法,而在另一个线程中使用的上下文没有问题.所以UIGraphicsBeginImageContextWithOptions,UIGraphicsPushContext和UIGraphicsPopContext是线程安全的.

大佬总结

以上是大佬教程为你收集整理的ios – UIGraphicsBeginImageContextWithOptions和多线程全部内容,希望文章能够帮你解决ios – UIGraphicsBeginImageContextWithOptions和多线程所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。
标签:ios多线程