どうも。
一応の制限事項というか、
未解決の課題のあるコードです。
下記のコードでは、
statusBarが描画できない…。
今のところ解決する方法が見つかってないけど、
まぁステータスバーの内容って別にないならないでいいかな、
なんて思ってしまう自分もいたりw
ということで、
例のごとく、
utilのようなクラスにクラスメソッドとして定義するとして。
+ (UIImage *)getScreenShotImage {
UIWindow *window = [[UIApplication sharedApplication] keyWindow];
UIGraphicsBeginImageContextWithOptions(window.bounds.size, NO, 0.0f);
CGContextRef context = UIGraphicsGetCurrentContext();
// Windowの現在の表示内容を1つずつ描画。
for (UIWindow *window in [[UIApplication sharedApplication] windows]) {
[window.layer renderInContext:context];
}
UIImage *capturedImage = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
return capturedImage;
}
UIWindow *window = [[UIApplication sharedApplication] keyWindow];
UIGraphicsBeginImageContextWithOptions(window.bounds.size, NO, 0.0f);
CGContextRef context = UIGraphicsGetCurrentContext();
// Windowの現在の表示内容を1つずつ描画。
for (UIWindow *window in [[UIApplication sharedApplication] windows]) {
[window.layer renderInContext:context];
}
UIImage *capturedImage = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
return capturedImage;
}
とりあえず取得したスクリーンショットをUIImage*で返しているが、
この辺りは実情に合わせて欲しい形で返したり、
カメラロールやアプリ内に保存する仕組みとかにしてもいい。
使い途としては、
デバッグ用に何かのトリガーでスクリーンショット取得しておくとか、
SLComposeViewControllerに渡してやってSNS連携とか。
MFMailComposeViewControllerに渡してやってメール送信とか。
例えばゲームの達成度をさくっと画像でシェアする、
なんて用途にもいいかもしれない。
それでは。
ちゃお☆
まこぴー。