[英]Change the time interval of a Timer
这是我的问题:例如,在ViewDidLoad中10秒钟后,是否可以将scheduledTimerWithTimeInterval:2
例如增加为“ 3”。 例如,从此:
[NSTimer scheduledTimerWithTimeInterval:2 target:self selector:@selector(createNewImage) userInfo:nil repeats:YES];
对此:
[NSTimer scheduledTimerWithTimeInterval:3 target:self selector:@selector(createNewImage) userInfo:nil repeats:YES];
谢谢你对不起我的英语我法语:/
像这样递归地重新安排计时器:
float gap = 0.50;
[NSTimer scheduledTimerWithTimeInterval:gap target:self selector:@selector(onTimer) userInfo:nil repeats:NO];
-(void) onTimer {
gap = gap + .05;
[NSTimer scheduledTimerWithTimeInterval:gap target:self selector:@selector(onTimer) userInfo:nil repeats:NO];
}
========
使其无效:
[myTimer invalidate];
然后用新的时间创建一个新的。 您可能还必须先将其设置为nil。
myTimer = nil;
myTimer = [NSTimer scheduledTimerWithTimeInterval:mySlider.value
target:self
selector:@selector(myMethod)
userInfo:nil
repeats:YES];
使用setFireDate:
重新安排计时器。 您需要在ivar中跟踪计时器。 例如:
@property (nonatomic, readwrite, retain) NSTimer *timer;
@synthesize timer=timer_;
- (void)setTimer:(NSTimer *)aTimer {
if (timer_ != aTimer) {
[aTimer retain];
[timer_ invalidate];
[timer_ release];
timer_ = aTimer;
}
- (void)dealloc {
[timer_ invalidate];
[timer_ release];
}
...
self.timer = [NSTimer scheduledTimerWithTimeInterval:...];
...
self.timer.fireDate = [NSDate dateWithTimeIntervalSinceNow:3]; // reschedule for 3 seconds from now
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.