0

質問があります。次のコードで uiwebview のスクリーンショットを取得します。

UIGraphicsBeginImageContextWithOptions(self.myWebView.bounds.size, self.myWebView.opaque, 0.0);
[self.myWebView.layer renderInContext:UIGraphicsGetCurrentContext()];
UIImage * img = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();

すべてが完全に機能し、特定の div のスクリーンショットを撮る必要があり、ユーザーが uiwebview 内で長押しすると、タッチされた div が検出され、この特定の div の写真が作成されます。これを行うための最良の方法は何ですか?

4

1 に答える 1

0

renderInContext を行う必要があるようです。

 // Size of the result rendered image
CGSize targetImageSize = CGSizeMake(100, 100);
// Check for retina image rendering option
if (NULL != UIGraphicsBeginImageContextWithOptions) UIGraphicsBeginImageContextWithOptions(targetImageSize, NO, 0);
else UIGraphicsBeginImageContext(targetImageSize);

CGContextRef context = UIGraphicsGetCurrentContext();
// The view to be rendered
[[yourImageView layer] renderInContext:context];
// Get the rendered image
UIImage *original_image = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();

私が知る限り、他の部分については、画面全体のスクリーンショットを撮ることができるパブリックメソッドはありません(つまり、ステータスバーを使用)。UIGetScreenImage を使用してこの機能を実現できるプライベート メソッドがあります。ただし、これは非公開の方法であるため、アプリを App Store に送信するとアプリが拒否されます。

于 2012-11-02T11:43:01.583 に答える