UIGraphicsBeginImageContextからレンダリングされた画像を添付しようとしています。テストとして、フォトアルバムにも画像を追加しています。シミュレーターではすべて完全に機能しますが、デバイスでは正しい画像がフォトアルバムに追加されますが、電子メールの添付ファイルには正しく表示されません。大きな画像で、iPhone3gsでは時間がかかるからだと思います。つまり、画像のレンダリングが完了したかどうかを確認する必要があります。それを行う方法はありますか?これが私のコードです:
UIGraphicsBeginImageContext(backGround.layer.frame.size);
[backGround.layer renderInContext:UIGraphicsGetCurrentContext()];
UIImage *image = UIGraphicsGetImageFromCurrentImageContext();
UIImageWriteToSavedPhotosAlbum(image, nil, nil, nil);
UIGraphicsEndImageContext();
MFMailComposeViewController *mailer = [[MFMailComposeViewController alloc] init];
mailer.mailComposeDelegate = self;
NSData *imgData = UIImagePNGRepresentation(image);
[mailer addAttachmentData:imgData mimeType:@"image/png" fileName:@"myfilename"];
画像が完全に完成しておらず、PNG表現を作成しているときに、まだデータが破損しているのではないかと思います。UIImageが「完了」しているかどうかをどうにかして確認できますか?