2010-12-13 18 views
3

私はUIViewサブクラス 'drawRect:の機能に問題があります。 私はCGContextDrawRadialGradient()を使っています。 ユーザーがUIViewをドラッグすると、グラデーションを含めると追いつくのに苦労しました。drawRect:速度とCGContextDrawRadialGradient(超低速?)

タイムプロファイラを使用すると、文字通り> 98%の時間がサブクラスのdrawRect:メソッドで費やされています。

最初に、グラディエントの静止画像を使用する方が高速でしょうか? 2番目:これをスピードアップする方法はありますか?何らかの形でグラデーションをキャッシュすることはできますか?それほど変化しませんが、その周りのパスと交差すると、UIViewをドラッグすると変化します。

drawRect:の方法がすべてのCPUサイクルを吸い込まないようにする方法に関する一般的なガイドを知っている人は、それはすばらしいでしょう。

答えて

0

私は同じ問題を抱えています。 1つの解決策は、小さな勾配を描き、それを拡大することです。結果はピクセル完璧ではなく、より高速です。

this answerに記載されているアイデアも参照してください。

関連する問題