我正在寻找一种简单直接的方法来延迟iOS应用中的多个帧的执行,这有可能吗?
答案 0 :(得分:10)
根据您正在做的事情的复杂程度,这个小小的片段就足够了:
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];
要获得有关如何使用它的更多信息的完美答案,请查看this post,当然,请查看documentation。
答案 1 :(得分:2)
如果你的意思是一段时间,那么通常的做法是使用NSTimer在将来的某个时间触发,或者使用dispatch_after(),它可以将一个块分派给主队列或者在未来的某个时间,背景一个。
答案 2 :(得分:2)
-(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];
}
答案 3 :(得分:1)
您可以使用[NSTimer scheduledTimerWithTimeInterval: target: selector:]
方法,也可以将内置方法用作wait(time_in_seconds);
希望这会对你有所帮助。