如何使进度条上的动画移动速度变慢

时间:2013-12-11 04:35:36

标签: objective-c uiprogressview uiprogressbar

[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秒的时间内生成动画。

1 个答案:

答案 0 :(得分: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次。