3

UIViewサブクラスのdrawRect:関数に問題があります。私はそれに使用CGContextDrawRadialGradient()します、そしてそれ。ユーザーがUIViewをドラッグすると、グラデーションを含めると追いつくのに苦労しました。

Time Profilerを使用すると、文字通り私の時間の98%以上がサブクラス' drawRect:メソッドに費やされていることがわかります。

まず、グラデーションの静止画像を使用する方が速いでしょうか?第二に:これをスピードアップする方法はありますか?どういうわけかグラデーションをキャッシュできますか?あまり変化しませんが、をドラッグすると、周囲のパスと交差するパスが変化しますUIView

drawRect:メソッドがすべてのCPUサイクルを吸い上げないようにする方法に関する一般的なガイドを誰かが知っているなら、それは素晴らしいことです。

4

1 に答える 1

0

私も同じ問題を抱えています。1つの解決策は、より小さなグラデーションを描画してスケールアップすることです。結果はピクセルパーフェクトではありませんが、より高速です。

この回答に記載されているアイデアも参照してください。

于 2010-12-30T16:25:52.363 に答える