我正在寻找一种简单直接的方法,在iOS应用程序中延迟执行一定数量的帧,这可能吗?
根据你所做事情的复杂程度,这个小片段可能已经足够:
double delayInSeconds = 2.0;
dispatch_time_t popTime = dispatch_time(DISPATCH_TIME_NOW, (int64_t)(delayInSeconds * NSEC_PER_SEC));
dispatch_after(popTime, dispatch_get_main_queue(), ^(void){
//code to be executed on the main queue after delay
});
否则,您可以使用NSTimer
来安排一些代码的执行。您甚至可以重复执行一次或多次。例如,可以像这样使用:
[NSTimer scheduledTimerWithTimeInterval:5.0
target:self
selector:@selector(myMethod)
userInfo:nil
repeats:NO];
David 是正确的。这里是一些代码,展示我如何使用NSTimer。
-(void)startAnimating {
[NSTimer scheduledTimerWithTimeInterval:.3 target:self selector:@selector(animateFirstSlide) userInfo:nil repeats:NO];
self.pageTurner = [NSTimer scheduledTimerWithTimeInterval:6.0 target:self selector:@selector(turnPages) userInfo:nil repeats:YES];
}
-(void)animateFirstSlide {
[self animateSlideAtIndex:0];
}
-(void)stopPageTurner {
[self.pageTurner invalidate];
}
[NSTimer scheduledTimerWithTimeInterval: target: selector:]
方法,或者也可以使用内置方法wait(time_in_seconds);
。
NSTimer scheduledTimerWithTimeInterval
可以满足你的需求? - bengoesboom