以下の方法で、iPhoneアプリの任意のビューまたは全画面のスクリーンショットを撮ることができます
- (UIImage *)captureView {
//hide controls if needed
CGRect rect = [self.view bounds];
UIGraphicsBeginImageContext(rect.size);
CGContextRef context = UIGraphicsGetCurrentContext();
[self.view.layer renderInContext:context];
UIImage *img = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
return img;
}
そして、以下のように呼び出します...
UIImage *tempImageSave=[self captureView];
また、この画像をフォトアルバム用に次の行で保存することもできます..
UIImageWriteToSavedPhotosAlbum(tempImageSave,nil,nil,nil);
また、ドキュメント ディレクトリの次の行を使用して、この画像を保存することもできます。
NSData *imageData = UIImagePNGRepresentation(tempImageSave);
NSFileManager *fileMan = [NSFileManager defaultManager];
NSString *fileName = [NSString stringWithFormat:@"%d.png",1];
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDirectory = [paths objectAtIndex:0];
NSString *pdfFileName = [documentsDirectory stringByAppendingPathComponent:fileName];
[fileMan createFileAtPath:pdfFileName contents:imageData attributes:nil];
ビューにレイヤー画像またはグラフィック関連のデータが含まれている場合は、以下のメソッドを使用します。
-(UIImage *)convertViewToImage:(UIView *)viewTemp
{
UIGraphicsBeginImageContext(viewTemp.bounds.size);
[viewTemp drawViewHierarchyInRect:viewTemp.bounds afterScreenUpdates:YES];
UIImage *image = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
return image;
}
そして、以下のようにこの方法を使用します。
UIImage *tempImageSave = [self convertViewToImage:yourView];
これがお役に立てば幸いです。