使用NSTimer创建倒计时
问题描述:
我有一个int值代表一个事件倒计时(正在显示的视图)。目前,我这样做:使用NSTimer创建倒计时
- (void) buttonTapped:(id)sender {
[self performSelector:@selector(displayView) afterDelay:countdownValue];
}
我想要做的是以下...
当按钮被窃听,改变色调我的导航栏,以红,黄,绿颜色的比例,直到倒数到期,然后显示视图。
例如,如果我的倒计时是3秒,每种颜色一秒,如果是5秒,每种颜色1.666。
我可以使用NSTimer来安排吗?
显示视图后,计时器将需要无效。
感谢
答
float count_down = 5.0;
[NSTimer scheduledTimerWithTimeInterval: count_down*(1.0/3.0) target: self
selector: @selector(changeToRed:) userInfo: nil repeats: NO];
[NSTimer scheduledTimerWithTimeInterval: count_down*(2.0/3.0) target: self
selector: @selector(changeToGreen:) userInfo: nil repeats: NO];
[NSTimer scheduledTimerWithTimeInterval: count_down target: self
selector: @selector(changeToBlue:) userInfo: nil repeats: NO];
而且回调(做你想做的存在):
-(void) changeToRed:(NSTimer*) t {
NSLog(@"red");
}
-(void) changeToGreen:(NSTimer*) t {
NSLog(@"green");
}
-(void) changeToBlue:(NSTimer*) t {
NSLog(@"blue");
}
有一个微妙的好处多计时器的方法(与一个计时器反复火灾)。使用这个,你不会积累漂移误差。 – bbum 2011-02-25 17:29:42
这适用于我,但点击按钮和色彩变为红色之间有一点点延迟,这是因为第一个定时器在一秒钟之后开始闪光?谢谢 – joec 2011-02-26 11:57:07
是的。如果您希望立即启动定时器,请将第一个时间间隔设置为0。 – Max 2011-02-26 12:34:09