次のコードを使用して、CoreAnimationレイヤーからUIImageを作成できます。
- (UIImage*)contentsImage;
{
UIGraphicsBeginImageContext([self bounds].size);
[self renderInContext:UIGraphicsGetCurrentContext()];
UIImage *image = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
return image;
}
このコードは私のCALayer派生クラスにあります。私が遭遇している問題は、結果の画像にレンダリングされない私のレイヤーの子レイヤーである2つのCAShapeLayersがあることです。標準のCALayerを子として追加すると、正常にレンダリングされます。Appleのドキュメントによると:
レシーバーとそのサブレイヤーを指定されたコンテキストにレンダリングします。
また、iPhoneOS2.0以降で利用可能になっているとも書かれています。足りないものがあるのか、レーダーを提出する必要があるのか疑問に思います。
子CAShapeLayersが画像に引き付けられないようにするためのアイデアはありますか?
ありがとう。