我正在尝试制作一个倒计时器,它也会改变它的颜色。
我试图在整个倒计时期间为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)?