iOS:UILabel动画冻结

时间:2014-06-05 15:13:04

标签: ios objective-c animation core-animation

我正在尝试制作一个倒计时器,它也会改变它的颜色。

我试图在整个倒计时期间为UILabel制作动画,就像一个长动画一样。因此,当计时器为60秒时,textColor为黑色,30处为灰色,0为textColor为白色。

我遇到的问题是颜色会随着时间的推移而完美变化,但标签的文字不会改变。 看起来标签被冻结,直到颜色动画停止。之后,标签正常倒计时。

这是我正在使用的代码:

- (IBAction) startTimerWithButton:(UIButton *) sender {
    if (!self.timer) {
        self.timer = [NSTimer scheduledTimerWithTimeInterval:1.0 target:self selector:@selector(updateCounterWithTimer:) userInfo:nil repeats:YES];

        [UIView transitionWithView:self.timeLabel duration:(self.timeInterval / 2)
                           options:(UIViewAnimationOptionAllowUserInteraction | UIViewAnimationOptionAllowAnimatedContent | UIViewAnimationOptionTransitionCrossDissolve)
                        animations:^{ self.timeLabel.textColor = [UIColor whiteColor]; }
                        completion:nil];
    }
    else {
        [self.timer invalidate];
        self.timer = nil;
    }
}

- (void) updateCounterWithTimer:(NSTimer *) theTimer {
    if (self.timeInterval > 0) {
        self.timeInterval--;
        self.timeLabel.text = [NSString stringWithFormat:@"%02d", (int) self.timeInterval];
    }
}

我在这里错过了 UIViewAnimationOption 吗?有没有办法组合这些动画(更改UILabel的文本和更改textColor)?

0 个答案:

没有答案