将图像设置为按钮

时间:2010-05-04 19:22:50

标签: iphone cocoa cocoa-touch image button

有人可以帮我解决下面的问题吗?

当我调用myFunction时,我想要设置为按钮的图像会在2秒后同时出现,而不是一个接一个地延迟0.5秒。

更多信息:

  • generatedNumbers是包含四个元素NSNumber(4,1,3,2)
  • 的数组
  • 按钮通过IB在UIView中设置并标记为(1,2,3,4)

-(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);
}   
}

1 个答案:

答案 0 :(得分:3)

可能发生的是这个方法在主线程上运行。因为它在你调用usleep()时等待完成,所以运行循环永远不会到达它将更新UI的程度。尝试创建NSTimer并每隔0.5秒触发一个单独的方法;这应该给主线程足够的时间来更新。