私の状況はこのようなものです。プログラムで、ユーザーに表示されている現在のビューの印刷画面を取得し、これをフォトアルバムに保存したいと思います。問題は、階層内のすべてのビューを表示したくないということです。私の計画は次のとおりでした:
- ビュー階層のコピーを作成します。
- 面白くなかったサブビューを非表示にします。
- 印刷画面を取ります。
- フォトアルバムに保存します。
問題は、私が最初の点で立ち往生していることです。プロトコルをUIView
実装していないため、ビュー階層のディープコピーを作成できません。NSCopying
ビューのアーカイブとアーカイブ解除を試みましたが、これはデッキトップでのみ利用可能でした。
私が見ているように、ここには2つのオプションがあります
。a)すべてのビューとサブビューにNSCopyingプロトコルを実装します。b)画面全体を覆う白いビューをフェードし(手動で印刷画面を取得するときのフラッシュ効果のようなもの)、その瞬間に必要なビューを非表示にします。
私が見逃したこの問題に取り組む他の方法はありますか?
編集:
UIGraphicsBeginImageContext([[wordManager mainWorkViewController] view].frame.size);
[[[[wordManager mainWorkViewController] view] layer] renderInContext:UIGraphicsGetCurrentContext()];
UIImage *screenshot = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
よろしく//Abeansits