繁体   English   中英

在两个视图控制器中使用UIWebView

[英]Using a UIWebView in two view controllers

我有一个从URL加载内容的UIWebView - 我想在另一个视图控制器中显示该UIWebView的一个小版本,几乎就像一个按钮。

我可以从其控制器中获取UIWebView。 如何使其内容显示在其他视图控制器中?

一个视图只能有一个超级视图。 这意味着您不能真正使它呈现两次。

做你要问的最简单的方法是将它呈现给图像并在其他地方显示该图像:

#include <QuartzCore/CALayer.h>

...

UIGraphicsBeginImageContext(webview.frame.size);
[webview.layer renderInContext:UIGraphicsGetCurrentContext()];
UIImage * img = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();

注意事项:

  • UIWebView使用WebKit异步渲染到图块; 上面的代码仅渲染现有的图块。 如果WebKit尚未渲染图块,则只会变白。 您可能必须在计时器等上运行它(然后它仍然不会那么可靠)。
  • 您需要使用UIGraphicsBeginImageContextWithOptions()来获得“视网膜”支持。 跳转以支持3.x / 4.x和4.x-only构建所需的箍数有点痛苦。
  • 缩放图像是读者的一项练习。
  • 创建一个较小的图像上下文并适当地改变CGContext的变换会更好。 它也留给读者练习。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM