Objective c 如何访问非重复NSTimer的剩余时间
我正在尝试访问NSTimer X的剩余时间。我希望每秒更新一个按钮的标题,以反映剩余的Objective c 如何访问非重复NSTimer的剩余时间,objective-c,ios,uibutton,nstimer,Objective C,Ios,Uibutton,Nstimer,我正在尝试访问NSTimer X的剩余时间。我希望每秒更新一个按钮的标题,以反映剩余的mm:ss,直到零。我在这里什么也找不到 例如:[btY setTitle:[在此处插入什么?]forState:UIControlStateSelected] 或者你更愿意用另一种方式来解决这个问题?这通常不是你解决这个问题的方式 创建一个重复NSTimer集,设置为要更新按钮的分辨率 例如,如果您想让按钮每秒更改一次直到零,请创建一个NSTimer,如下所示: NSTimer *timer = [NSTim
mm:ss
,直到零。我在这里什么也找不到
例如:[btY setTitle:[在此处插入什么?]forState:UIControlStateSelected]代码>
或者你更愿意用另一种方式来解决这个问题?这通常不是你解决这个问题的方式
创建一个重复NSTimer集,设置为要更新按钮的分辨率
例如,如果您想让按钮每秒更改一次直到零,请创建一个NSTimer,如下所示:
NSTimer *timer = [NSTimer timerWithInterval:1.0 target:self selector:@selector(updateButton) userInfo:nil repeats:YES];
然后实现updateButton
;基本上,在剩余的秒数内有一个计数器,每次调用updateButton
时,将计数器减少一个,并更新按钮的标题。您将无法获取此类信息,相反,您将需要运行计时器几次,例如,如果要每30秒用文本更新按钮一次,而不是用30秒启动计时器,请用1秒启动计时器并重复30次您可以使用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
}
非常感谢,即使对于这么简单的工作,这听起来像是一大堆文字:P@Coltan字体很高兴它有帮助。如果问题已解决,您可以使用左侧的绿色复选标记将其标记为已接受答案。这是计时器上“如何访问剩余时间”问题的正确答案,但属性错误(至少在iOS 8上)。它应该是:float timeRemaining=timer.fireDate.timeIntervalSinceNow代码>