基本上,我有一系列按钮,我想一个接一个地迭代和突出显示(除其他外),中间有一个延迟。似乎是一项简单的任务,但我似乎无法让它在保持响应的同时干净地工作。
我从这个开始:
for MyButton *button in buttons {
[button highlight];
[button doStuff];
usleep(800000); // Wait 800 milliseconds.
}
但它没有响应,所以我尝试使用运行循环。
void delayWithRunLoop(NSTimeInterval interval)
{
NSDate *date = [NSDate dateWithTimeIntervalSinceNow:interval];
[[NSRunLoop currentRunLoop] runUntilDate:date];
}
for MyButton *button in buttons {
[button highlight];
[button doStuff];
delayWithRunLoop(0.8); // Wait 800 milliseconds.
}
但是,它也没有反应。
有什么合理的方法可以做到这一点吗?NSTimer
使用线程或s似乎很麻烦。