我使用UIDatePicker
来实现倒数计时器。加载视图datePickerMode
后设置CountDownTimer:
- (void)viewDidLoad {
[super viewDidLoad];
self.countDownTimer.datePickerMode=UIDatePickerModeCountDownTimer;
}
首先,在UIDatePicker
中设置倒计时时间,然后按按钮开始倒计时:
- (IBAction)StartCountdown:(id)sender {
[sender setTitle:@"Cancel" forState:UIControlStateNormal];
countDownInterval = (NSTimeInterval)countDownTimer.countDownDuration;
remainder = countDownInterval;
afterRemainder = countDownInterval - remainder % 60 ;
//call updateCountDown()
timer=[NSTimer scheduledTimerWithTimeInterval:1 target:self selector:@selector(updateCountDown) userInfo:nil repeats:YES];
}
致电updateCountDown()
:
-(void)updateCountDown{
afterRemainder --;
int hours = (int)(afterRemainder/(60*60));
int mins = (int)(((int)afterRemainder/60)-(hours * 60));
int secs = (int)(((int)afterRemainder - (60 * mins) - (60 * hours *60)));
NSString *displayText = [[NSString alloc]initWithFormat:@"%02u : %02u : %02u",hours,mins,secs];
self.displayLabel.text = displayText;
}
动作可以正常执行,但是当我跳出这个视图并且不会执行定时器为零时,如何操作定时器后可以持续跳转视图?
答案 0 :(得分:1)
创建单例类并将内部的计时器声明为内部属性的最佳和最简洁的方法。所以在整个应用程序中只有一个计时器对象的实例。
另一种方法是在app delegate类中声明timer,它也在整个应用程序中保存对象
答案 1 :(得分:1)
我认为你可以做到:
只是一个想法,但希望它有所帮助