0

我正在尝试在 iphone 应用程序的 for 循环中设置延迟。基本上我会有一个带有几个动作的 for 循环,我希望每个动作之间有 1 秒的延迟:

for循环{动作1,延迟1秒,动作2,延迟1秒,动作3,延迟1秒}

我将如何编码?

4

2 回答 2

3
for (loop) {

    [self action1];
    [self performSelector:@selector(action2) withObject:nil afterDelay:1.0];
    [self performSelector:@selector(action3) withObject:nil afterDelay:1.0];
}

希望这就是你要找的!!

编辑

试试这个..它将完成运行当前方法并移动到下一个。

for (loop) {

    [self performSelectorOnMainThread:@selector(action1) withObject:nil waitUntilDone:YES];
    [self performSelectorOnMainThread:@selector(action2) withObject:nil waitUntilDone:YES];
    [self performSelectorOnMainThread:@selector(action3) withObject:nil waitUntilDone:YES];
}
于 2012-10-03T10:51:07.630 回答
0

这不涉及 for 循环,但会采用一系列操作并以增加的延迟执行它们。

NSArray *selectorStrings = @[ @"action1", @"action2", @"action3" ];
[selectorStrings enumerateObjectsUsingBlock:^(id obj, NSUInteger idx, BOOL *stop) {
    SEL selector = NSSelectorFromString((NSString *)obj);
    NSTimeInterval delay = (NSTimeInterval)idx;
    [self performSelector:selector withObjet:nil afterDelay:delay];
}];

希望这可以帮助!如果您有任何问题,请告诉我。

于 2012-10-04T05:51:48.303 回答