2010-11-21 6 views
0

URLからコンテンツをロードするUIWebViewがあります。別のビューコントローラーのUIWebViewのボタンのような小さなバージョンを表示したいと思います。2つのビューコントローラーでUIWebViewを使用する

コントローラからUIWebViewを取得できます。別のView Controllerでコンテンツを表示させるにはどうしたらいいですか?

答えて

2

ビューにはスーパービューが1つしか存在できません。つまり、実際には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のトランスフォームを適切に変更するとさらに優れたものになります。それは読者にも練習として残されています。
関連する問題