0

アプリのカスタム プログレス バーを作成しています。

私はサブクラスUIView化しており、すべての描画は で処理されていdrawRectます。

現在、カスタム プログレス バーには、表示方法をすべて変更する 6 つのプロパティがあります。

minProgress
maxProgress
progress
onColor
offColor
numberOfSections

これらはすべてサブクラスによってデフォルト値に設定されますが、コントローラーの viewWillAppear メソッドでこれらすべての値が変更される場所がいくつかあります。

現時点では、このように見えるすべてのプロパティのセッター関数を作成しました...

- (void)setProgress:(float)progress
{
    _progress = progress;

    [self setNeedsDisplay];
}

しかし、これは drawRect メソッドが実際に画面に表示される前に 6 回呼び出されることを意味するのでしょうか? やり方が悪いようです。

私はこれについて正しいですか?これを行う別の方法はありますか?

4

1 に答える 1

3

setNeedsDisplay次の描画フェーズで再描画が必要であることをビューにマークするだけです。次の描画の前に何度も呼び出しても、描画されるのは 1 回だけです。

于 2013-03-04T19:13:33.560 に答える