2012-02-26 4 views
0

コンテンツ、テクスチャ、およびシャドウを主に持ち、画面の別の部分に移動する必要があるビューがあります。drawRectで作成されたコンテンツのビューをアニメーション化(スライド)する:

これらのテクスチャはdrawRect:で作成され、ビューの再生中に一度だけレンダリングする必要があります(レンダリングすることは可能です)。

しかし、スライドがちょっとジャッキーですが、これはテクスチャが再描画されているためです。

ビューCALayerを直接使用してテクスチャをレンダリングする際に何か価値があるのだろうかと思っていました。ビューが動くたびにテクスチャがレンダリングされるのを避けることができますか?

私はかつてCALayerを使ったことがありません。

おかげ カール

答えて

0

あなたがのdrawRectをオーバーライドして、そのようなあなたのビューを使用している場合、それはすべての時間を再描画なります。あなたができることは、あなたのビューを一度描画するメソッドを作成することです。これは一度呼び出されていて(initの後に)、drawRectをオーバーライドしません。それはあなたのパフォーマンスの問題を解決するはずです。

アニメーションを行い、パフォーマンスを向上させたい場合は、アニメーション中にビューを移動するのではなく、レイヤーを移動する必要があります(UIView)。ビューのレイヤーにアクセスするには、myView.layerを実行します。

希望しました。

+0

はい、これは非常に役に立ちました。ありがとうございました –

+0

問題がなければ、あなたはクリックして私に少しの評判を与えることができます:) – Ganzolo

関連する問題