有人可以帮我解决下面的问题吗?
当我调用myFunction时,我想要设置为按钮的图像会在2秒后同时出现,而不是一个接一个地延迟0.5秒。
更多信息:
-(IBAction) myFunction:(id) sender {
int i, value;
for (i = 0; i<[generatedNumbers count]; i++) {
value = [[generatedNumbers objectAtIndex:i] intValue];
UIButton *button = (UIButton *)[self.view viewWithTag:i+1];
UIImage *img = [UIImage imageNamed:[NSString stringWithFormat:@"%d.png",value]];
[button setImage:img forState:UIControlStateNormal];
[img release];
usleep(500000);
}
}
答案 0 :(得分:3)
可能发生的是这个方法在主线程上运行。因为它在你调用usleep()
时等待完成,所以运行循环永远不会到达它将更新UI的程度。尝试创建NSTimer
并每隔0.5秒触发一个单独的方法;这应该给主线程足够的时间来更新。