2010-11-21 4 views
0

URL에서 컨텐트를로드하는 UIWebView가 있습니다. 다른 뷰 컨트롤러의 해당 UIWebView와 거의 같은 작은 버전을 표시하고 싶습니다.두 개의 뷰 컨트롤러에서 UIWebView 사용하기

컨트롤러에서 UIWebView를 가져올 수 있습니다. 다른보기 컨트롤러에서 내용을 표시하려면 어떻게합니까?

답변

2

보기에는 하나의 수퍼 뷰 만있을 수 있습니다. 즉, 실제로 렌더링을 두 번 할 수는 없습니다.

#include <QuartzCore/CALayer.h> 

... 

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

주의 사항 :

  • 있는 UIWebView가 비동기 적으로 렌더링 할 수 웹킷을 사용

    당신이 요구하는지 무엇을하는 가장 쉬운 방법은 이미지와 그 이미지를 다른 곳에서 그 화면에 렌더링하는 것입니다 타일; 위의 코드는 기존 타일 만 렌더링합니다. WebKit에서 타일을 아직 렌더링하지 않은 경우 흰색이 표시됩니다. 타이머 또는 무언가에서 실행해야 할 수도 있습니다.

  • "retina"를 지원하려면 UIGraphicsBeginImageContextWithOptions()을 사용해야합니다. 3.x/4.x 및 4.x 전용 빌드를 모두 지원하려면 점프해야하는 횟수가 많습니다.
  • 이미지 크기를 조정하면 독자가 연습 할 수 있습니다.
  • 더 작은 이미지 컨텍스트를 생성하고 CGContext의 변환을 적절하게 변경하는 것이 더 좋을 것입니다. 그것은 또한 독자들에게 운동으로 남아 있습니다.
관련 문제