-1

私のアプリでは、ユーザーがカメラロールから写真をアップロードして画面上で操作できるように、セクションが削除された別の画像ビューの上にオーバーレイされた ui 画像ビューがあります。次のコードを使用して、これらの両方の画像を一緒に保存して、画面のショットを撮りたいと思います。ただし、それも上部のバーと下部にあるタブビューを使用するため、スクリーンショットボタンを使用して保存する画面の特定の領域を指定することは可能ですか?

次のコードを操作して、画面全体のスクリーン ショットを撮らないようにして、バー ボタンを除外することはできますか?

if ([[UIScreen mainScreen] respondsToSelector:@selector(scale)])
    UIGraphicsBeginImageContextWithOptions(self.view.window.bounds.size, NO, [UIScreen mainScreen].scale);
else
    UIGraphicsBeginImageContext(self.view.bounds.size);
[self.view.window.layer renderInContext:UIGraphicsGetCurrentContext()];
UIImage *viewImage = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();

UIImageWriteToSavedPhotosAlbum(viewImage, nil, nil, nil);           
4

1 に答える 1

3

いつでも からイメージを作成できますUIView

UIGraphicsBeginImageContext(view.bounds.size);
[view.layer renderInContext:UIGraphicsGetCurrentContext()];
UIImage *image = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();

したがって、基本的に、ウィンドウ全体のビューからレイヤーを取得する代わりに...関心のあるビューからレイヤーを取得し、そこから画像を作成するだけです。

次に、画像を任意の場所に保存します。

于 2012-06-24T23:44:06.627 に答える