1

最近、独自のコントロールの作成を開始しましたが、drawRect の使用方法を理解するのに少し苦労しているようです。

基本的に3つの質問があります。

  1. 条件付きの drawRect を使用することは良い考えですか? すなわち。プロパティまたはインスタンス変数に基づくさまざまな描画コード。

  2. drawRect の描画への変更をアニメーション化するための最良の方法は何ですか? たとえば、アニメーション化された充填と非充填を備えた燃料ゲージ コントロールです。

  3. そして最後に、drawRect でアニメーション化するために私が見た例では、タイマーを使用する傾向がありますが、それは実際には本当に良い方法ですか? より重いアプリでは、その方法に問題があるようです。

おそらく、この種のことを行うためのより良い場所はありますか?

4

1 に答える 1

2

条件付きの drawRect を使用することは良い考えですか? すなわち。プロパティまたはインスタンス変数に基づくさまざまな描画コード。

もちろん?メソッドが扱いにくくなった場合は、ビューのプロパティに応じてdrawRect:呼び出す複数のメソッドに分割できます。たとえば、、 などのdrawRect:メソッドを使用できます。drawBackgrounddrawTitle

drawRect の描画への変更をアニメーション化するための最良の方法は何ですか? たとえば、充填と非充填がアニメーション化された燃料ゲージ コントロールです。

場合によります。非常に小さなビューの場合はsetNeedsDisplayタイマーから呼び出すことができますが、大きなビューの場合、この方法ではパフォーマンスの問題が発生することがよくあります。

UIView多くの場合、コア アニメーション (または簡略化されたアニメーション メソッド)でアニメーション化できる複数のサブビューまたはレイヤーからビューを合成することによって、変更をアニメーション化する方が適切です。

于 2012-05-22T11:42:50.340 に答える