将UIWebview内容转换为UIImage

Cor*_*oyd 10 iphone cocoa-touch core-animation objective-c

我正在使用UIWebView来显示HTML格式的文本.我没有加载网页,只是向UIWebView提供了一串HTML.

现在我想在屏幕上设置这个UIWebView的动画,实际上有几个(一次2-10个).UIWebView有点沉重,虽然我还没有尝试过,但我计划做最坏的事情.(我不认为这是不成熟的优化,我几乎肯定这将是一个问题)

为了解决这个问题,我想我可以将UIWebViews的内容转换为UIImages,并为它们设置动画.

所以,我的问题是:

  1. 如何将UIWebview内容转换为UIImage(或CGImageRef)?
  2. 我的UIWebViews有透明的bacgrounds,透明度会被转移到UIImage吗?

谢谢你的任何建议

Jas*_*wig 21

UIGraphicsBeginImageContext(webview.bounds.size);
[webview.layer renderInContext:UIGraphicsGetCurrentContext()];
UIImage *image = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
Run Code Online (Sandbox Code Playgroud)

如果webview维度很大,则可能会遇到问题,因为webview使用的CATiledLayer不会因内存原因而绘制所有内容.

图像将包括透明度