当前位置:  开发笔记 > Android > 正文

如何判断UIWebView何时完成绘制到上下文?

如何解决《如何判断UIWebView何时完成绘制到上下文?》经验,为你挑选了0个好方法。

在我的代码中,我试图显示一个UIWebView正在加载的页面,然后,当它完成时,从Web视图捕获图像以便稍后缓存和显示(所以我不必重新加载和呈现网页) .

我有类似的东西:

CGContextRef context = CGBitmapContextCreate(…);
[[webView layer] renderInContext:context];

CGImageRef imageRef = CGBitmapContextCreateImage(context);
UIImage *image = [UIImage imageWithCGImage:imageRef];

我遇到的问题是,由于UIWebView平铺,有时只有一半的页面在我捕获图像时被渲染到上下文中.

有没有办法检测或阻止UIWebView背景渲染线程,这样我才能在所有渲染完成后才能获取图像?


更新:可能是线程竞争条件是红色鲱鱼(从文档中无论如何都不清楚,无论UIWebView是自定义层还是CATiledLayer后台线程中的常规块).

这可能是一个无效问题(尽管对它和它的层setNeedsDisplay都有几种调用UIWebView).更改UIWebView渲染之前的界限似乎已经消除了"不绘制整个事物"的问题.

我仍然遇到了一个问题,即在旧规模上绘制了几块瓷砖,但是renderInContext:两次调用似乎已经足够了.

推荐阅读
放ch养奶牛
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有