現在のビューの画像をプログラムで UIImage に保存しようとしています。現在のビューには背景が含まれており、レイヤーに 3D 変換が適用された多数の UIImageViews が含まれています。
CATransform3D t = CATransform3DIdentity;
t = CATransform3DRotate(t, rotationX, 1.0, 0, 0);
t = CATransform3DRotate(t, rotationY, 0, 1.0, 0);
object.layer.transform = t;
現在、次のコードを使用して現在のビューのスクリーンショットを取得しています。
UIGraphicsBeginImageContext(background.bounds.size);
[background.window.layer renderInContext:UIGraphicsGetCurrentContext()];
UIImage *viewImage = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
ただし、オブジェクトの 3D 変換は失われます。たとえば、3D 変換が適用されていないかのようにオブジェクトが保存された画像に表示されます。3D 変換を含むスクリーンショットをプログラムで取得する方法はありますか?
UIGetScreenImage() はプライベート API であり、このアプリはアプリ ストアに送信されるため、オプションではありません。