我有一个数组(在下面的代码中称为数组),其中包含许多MyView对象。我试图在For循环中迭代这些对象并逐个添加它们作为子视图,每个都延迟一秒。下面的代码的问题是在延迟一秒后立即添加所有对象。任何人都可以建议我如何纠正?
提前谢谢。
- (void)startMethod {
for (MyView * myview in array) {
[self performSelector:@selector(addSubView:) withObject:myview afterDelay:1];
}
}
- (void)addSubView : (UIView *)view {
[soundController playSound];
[self.view addSubview:view];
}
答案 0 :(得分:1)
执行循环的时间不足以延迟选择器执行。您可能需要使用例如计数器来延迟自己。
-(void)startMethod {
NSUInteger i = 0;
for (MyView * myview in array) {
i += 1;
[self performSelector:@selector(addSubView:)
withObject:myview
afterDelay:i];
}
}
答案 1 :(得分:0)
- (void)startMethod {
int i = 1;
for (MyView * myview in array) {
[self performSelector:@selector(addSubView:) withObject:myview afterDelay:i];
i++;
}
}
答案 2 :(得分:0)
实际上,它非常简单:
- (void)startMethod {
int seconds = 0;
for (MyView * myview in array) {
[self performSelector:@selector(addSubView:) withObject:myview afterDelay:++seconds];
}
}
答案 3 :(得分:0)
简单解决方案:在循环的每次迭代后将延迟增加一秒。