頭と尻尾はくれてやる!

パソコンおやじのiPhoneアプリ・サイト作成・運営日記


renderInContext:メソッドはマスクを無視する

iphone - Taking a screenshot in-app then putting it in a UIImageView does so at normal resolution - Stack Overflow

このあたりのコードを参考にして、コード上でスクリーンショットを作ろうとしたのですが、いざやってみるとこんな風になってしまうのです。

マスクが無視されているスクリーンショット

グラフ外枠の右側にもなぜかプロットされているのですが、ここ元々はマスクされている部分なのです。
なんでだー?といろいろと試行錯誤をしたのですがどう頑張ってもダメ。

いろいろ調べてたどり着いたのがCALayerクラスのrenderInContext:メソッドはマスクは無視しちゃうよってこと。

リファレンスに書いてました。

Important: The Mac OS X v10.5 implementation of this method does not support the entire Core Animation composition model. QCCompositionLayer, CAOpenGLLayer, and QTMovieLayer layers are not rendered. Additionally, layers that use 3D transforms are not rendered, nor are layers that specify backgroundFilters, filters, compositingFilter, or a mask values. Future versions of Mac OS X may add support for rendering these layers and properties.


いつかサポートするかもしれないよって言われてもなあ、、、orz



実はこんな方法が、、、 : masksToBoundsでもマスクできる!

<< 画像に影を付けたいのでいろいろプロパティをいじってみた  TopPage  赤ちゃんの成長グラフ ver1.1リリース >>

コメント


管理者にだけ表示を許可する
 

トラックバック

トラックバックURL
http://ringsbell.blog117.fc2.com/tb.php/493-c682c14a




Copyright ©頭と尻尾はくれてやる!. Powered by FC2 Blog. Template by eriraha.

FC2Ad