Gil*_*ert 9 iphone uiwebview calayer cgcontext ios
有人知道如何获取从UIWebView呈现的UIImage的方式或创意吗?问题是,必须在后台线程上.
我会详细说明:我试图每秒从多个UIWebView获取图像+ - 并将其显示在屏幕上(当然是iPhone).因为将图层渲染到CGContext是一个CPU消耗作业,我不想使用主线程,所以不要挂起UI.
我到目前为止的尝试是:
我试图renderInContext
在webView的图层上使用UIGraphicalContext
,但_WebTryThreadLock
错误导致网页浏览崩溃.
我尝试创建一个CGBitmapContext
,并将webview的图层渲染到它,但得到了相同的结果.
我尝试实现一个copy
方法(通过添加一个类别)CALayer
,深度复制所有的公共属性和子图层.之后,我尝试renderInContext
了我复制的图层.我得到了一个部分 "正确" 的UIImage - 意思是,并非所有的图层都被渲染,所以例如,我只会得到网站标题(或页脚,或正文,或搜索栏,或只是一些框架).UIWebview的图层由所有类型的子类CALayers组成,因此这可能就是为什么这个接近不起作用的原因.
我尝试kCATransactionDisableActions
在a中设置CATransaction
,但它似乎没有改变这种行为(它们都没有).
我非常接近放弃.
你们中间有救世主吗?
UIWebView 讨厌,我的意思是真的讨厌,在后台线程上对其进行任何操作。UIKit 不是完全线程安全的。绘制到图形上下文(这是在 iOS 4 中添加的),但不在辅助线程上创建 UIView。
您是否在主线程之外创建 UIWebView?您也许有一些代码可以分享吗?我怀疑您的问题是由于您尝试在辅助线程上对 UIWebView 执行操作而引起的。将视图内容呈现为图像的绘制操作可以在主线程之外进行,但创建视图本身则不能。
归档时间: |
|
查看次数: |
4688 次 |
最近记录: |