複数のサブビューを持つ UIView があり、これらの各サブビューには異なる CATransform3D がレイヤーに適用されています。このビューの UIImage 表現を作成したいと思います。
次の解決策を調査しました。
- UIGetScreenImage (プライベート API であるため、これは使用できません)
- Apple の説明に従って、レイヤーを取得し、renderInContext を呼び出します: http://developer.apple.com/library/ios/#qa/qa1703/_index.html。このメソッドはレイヤー変換を考慮せず、ビューは通常どおりに描画されます。
- ここで説明されているように glReadPixels を使用する: glReadPixels はいつ使用できますか? . UIView を扱う場合、これはオプションではないようです。
- Marcos https://stackoverflow.com/a/13850972/368674で説明されている手法を使用して変換された画像を生成すると、画像が認識できないほど引き裂かれました。hfossli の改良版 ( https://stackoverflow.com/a/16203572/368674 ) を試して、ほとんどの画像を適切に変換し、他の画像を歪ませたり失敗させたりして、画像にエイリアス効果を与えました。
これを達成するために私が探求できる他の手段はありますか?