在我的应用中,我想使用NSTimer更新我的UIButton实例,但我的按钮的标题并没有随着时间的推移而改变。我的代码在这里:
-(void)fireTimer{
self.leftTime = 30;
self.timer = [NSTimer scheduledTimerWithTimeInterval:1 target:self selector:@selector(timerAction) userInfo:nil repeats:YES];
[self.timer fire];
}
- (void)timerAction
{
self.leftTime--;
NSLog(@"%d current runloop and mode is %@", self.leftTime, [NSRunLoop currentRunLoop].currentMode);
[self.customBtn setTitle:[NSString stringWithFormat:@"leftTime:%d", self.leftTime] forState:UIControlStateNormal];
if(self.leftTime == 0)
{
[self.customBtn setTitle:[NSString stringWithFormat:@leftTime :%d, self.leftTime] forState:UIControlStateNormal];
[self.timer invalidate];
}
}
NSLog输出正确,当 self.timeLeft == 0 时,我的按钮可以正确更改它的标题。
有人可以告诉我这是什么问题吗?谢谢!
答案 0 :(得分:1)
我发现问题,我用KVO观察self.leftTimer,当计时器触发时,我设置了我的button.enable = NO,所以它不能改变标题,当self.leftTime == 0时,我的button.enable = YES。我不小心。谢谢大家。