2010-11-21 50 views
0

我有一個UIWebView從URL加載內容 - 我想在另一個視圖控制器中顯示該UIWebView的一個小版本,幾乎像一個按鈕。在兩個視圖控制器中使用UIWebView

我可以從其控制器獲取UIWebView。如何使其內容顯示在不同的視圖控制器中?

回答

2

一個視圖只能有一個超視圖;這意味着你不能真正使它渲染兩次。

做你問什麼最簡單的方法是將其渲染爲一個圖像和顯示該圖像在別處:

#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版本,你需要跳過的箍環有點痛苦。
  • 縮放圖像是對讀者的練習。
  • 創建一個較小的圖像上下文並適當地更改CGContext的轉換會更好。它也作爲練習留給讀者。
相關問題