0
[UIView animateWithDuration:10000 animations:^{
    [self.RecomendedBar setProgress:self.whatProgressbarShouldBe animated:NO];
}];

時間を 10k に設定したアニメーション ブロック内で進行状況を設定したことは明らかです。

それでも、それはとても速いです。1秒未満。

実際、私がこれを行うと:

    [self.RecomendedBar setProgress:self.whatProgressbarShouldBe animated:NO];
    [UIView animateWithDuration:10000 animations:^{

    }];

プログレスビュー バーがアニメーション ブロックの外にあるにもかかわらず、1 秒未満でアニメーション化されます。

4

1 に答える 1

2

これを行う 1 つの方法は、進行状況バーを更新するために使用される時間間隔を生成するために NSTimer を使用することです。たとえば、15 秒間のプログレス バーを作成するには、次のようにします。

 NSTimer *progressTimer = [NSTimer scheduledTimerWithTimeInterval:0.25f target:self selector:@selector(updateProgressBar) userInfo:nil repeats:YES];

 - (void)updateProgressBar {
     float newProgress = [self.progressBar progress] + 0.01666; // 1/60
     [self.progressBar setProgress:newProgress animated:YES];
 }

ヘッダーで updateProgressBar メソッドを宣言します。増分は 0.016666... または 1/60 です。これは、0.25 秒のタイマー間隔が 15 秒間に 60 回発生するためです。

于 2013-12-11T04:50:03.407 に答える