Iphone 更改计时器的时间间隔
我的问题是: 例如,在ViewDidLoad中,是否可以在10秒后增加Iphone 更改计时器的时间间隔,iphone,xcode,timer,nstimer,nstimeinterval,Iphone,Xcode,Timer,Nstimer,Nstimeinterval,我的问题是: 例如,在ViewDidLoad中,是否可以在10秒后增加scheduledTimerWithTimeInterval:2,例如“3”。 例如,由此: [NSTimer scheduledTimerWithTimeInterval:2 target:self selector:@selector(createNewImage) userInfo:nil repeats:YES]; 为此: [NSTimer scheduledTimerWithTimeInterval:3 targe
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];
多谢各位
对不起,我的英语是法语:/请使用
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
使用
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
按如下方式递归重新安排计时器:
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];
然后用新的时间创建一个新的。您可能还需要先将其设置为零
myTimer = nil;
myTimer = [NSTimer scheduledTimerWithTimeInterval:mySlider.value
target:self
selector:@selector(myMethod)
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];
然后用新的时间创建一个新的。您可能还需要先将其设置为零
myTimer = nil;
myTimer = [NSTimer scheduledTimerWithTimeInterval:mySlider.value
target:self
selector:@selector(myMethod)
userInfo:nil
repeats:YES];
很抱歉,我不太明白hos如何使用setFireDate或如何在ivar中跟踪计时器。您能解释更多吗?:)很抱歉,我不太明白hos如何使用setFireDate或如何在ivar中跟踪计时器。您能解释更多吗?:)