如何在iPhone上显示uilabel的倒计时?

Rah*_*yas 10 objective-c nstimer iphone-sdk-3.0

我在视图上有一个uilabel和一个uislider.我想用slider.range of slider设置标签的时间是00:00:00到03:00:00.意味着3个小时.并且滑块上的干涉是0.5分钟.也是如何显示.即使应用程序关闭,我也希望计时器运行.

Sha*_*ver 41

首先,在你的应用关闭后,没有办法让计时器继续运行.iPhone上不允许使用后台应用程序.有一些方法可以使用计时器来伪造它(保存应用程序退出时的时间戳,并在它开始备份时检查它),但它不会处理在应用程序启动之前计时器用完的情况起来.

至于使用倒计时更新UILabel,NSTimer可能会起作用.这样的事情,假设你的班级有NSTimer计时器,int secondsLeft和UILabel countdownLabel:

创建计时器:

timer = [NSTimer scheduledTimerWithTimeInterval: 1.0 target:self selector:@selector(updateCountdown) userInfo:nil repeats: YES];
Run Code Online (Sandbox Code Playgroud)

updateCountdown方法:

-(void) updateCountdown {
    int hours, minutes, seconds;

    secondsLeft--;
    hours = secondsLeft / 3600;
    minutes = (secondsLeft % 3600) / 60;
    seconds = (secondsLeft %3600) % 60;
    countDownlabel.text = [NSString stringWithFormat:@"%02d:%02d:%02d", hours, minutes, seconds];
}
Run Code Online (Sandbox Code Playgroud)

我在我的一个应用程序中做了类似的事情,但现在没有方便的代码.