我正在尝试访问NSTimer X的剩余时间。我想每秒更新一个按钮的标题,以反映剩余的mm:ss
直到零。我在这里找不到任何东西。
例如:[btY setTitle:[What to insert here?] forState:UIControlStateSelected];
或者你想以不同的方式解决这个问题吗?
答案 0 :(得分:14)
您可以使用fireDate
NSTimer *timer = [NSTimer timerWithInterval:1.0 target:self selector:@selector(updateButton) userInfo:nil repeats:YES];
- (void)updateButton:(NSTimer*)timer
{
float timeRemaining = timer.fireDate.timeIntervalSinceNow;
// Format timeRemaining into your preferred string form and
// update the button text
}
答案 1 :(得分:2)
这通常不是你如何解决这个问题。
创建一个重复的NSTimer设置为您想要更新按钮的分辨率。
因此,例如,如果您希望按钮每秒更改一次,则创建一个NSTimer,如下所示:
NSTimer *timer = [NSTimer timerWithInterval:1.0 target:self selector:@selector(updateButton) userInfo:nil repeats:YES];
然后实施updateButton
;基本上有剩余秒的计数器,每次调用updateButton
时,将计数器减1,并更新按钮的标题。
答案 2 :(得分:0)
您将无法获得此类信息,而是需要多次运行计时器,例如,如果您希望每30秒更新一次带有文本的按钮,而不是启动计时器用30秒启动一个计时器,持续1秒,并重复30次