0

UIView サブクラスの drawRect にアニメーション コードを配置しました。UIViewController の viewWillAppear のようなものを本当に探していました。しかし、UIViewController ではなく UIView を使いたかったのです。以下のコードを使用しています。アニメーション コードを drawRect に入れるのは適切ですか? アニメーションは、ビューが表示されているときの単なる起動アニメーションです。

- (void)drawRect:(CGRect)rect
{

    [_graphView setFrame:CGRectMake(0.0f, 0.0f, 30.0 + (_defaultArray.count * STEP_X), self.frame.size.height)];
    [self setContentSize:CGSizeMake(30.0 + (_defaultArray.count * STEP_X), _graphView.frame.size.height)];

    float delayInSeconds = 0.25f;
    dispatch_time_t popTime = dispatch_time(DISPATCH_TIME_NOW, delayInSeconds * NSEC_PER_SEC);
    dispatch_after(popTime, dispatch_get_main_queue(), ^(void){

        if (_graphView.frame.size.width > GRAPH_WIDTH) [self setContentOffset:CGPointMake(_graphView.frame.size.width - GRAPH_WIDTH, 0.0f) animated:YES];

    });
}
4

1 に答える 1

2

いいえ、これはひどい考えです。の実装で行う必要があるのは、ビューのコンテンツ-drawRect:描画することだけです。あなたのコードはどれもそれに近いことをしていません。

(このビューがのサブクラスであるUIScrollView場合、おそらくオーバーライドするべきではありません-drawRect:。)

そのコードは、View Controllerで、またはおそらくViewのセットアップコードでより適切であるように見えます(_graphView自体を作成しますか?)。コードの残りの部分について詳しく知らなければ、それがどこに属しているかを正確に示唆することは困難です。

于 2013-02-18T06:11:10.613 に答える