我在使用 sleep() 时遇到了一些问题。我有 10 个 UIButtons 连接到同一个名为“buttons:”的 IBAction。现在,IBAction 方法应该禁用所有按钮并将它们的背景颜色变为红色,然后调用一个名为“nextButtonToEnable”的方法,该方法首先有一个 sleep(1),然后是一个随机 int,由一个变为 1 的开关使用启用的按钮和蓝色而不是红色。现在问题来了,我希望所有按钮在按下时都变成红色,然后在 1 秒延迟后,另一个按钮会变成蓝色,但这不会发生,真正发生的是当我按下蓝色按钮时,它在整个延迟 1 秒,然后它变成红色,另一个按钮变成蓝色。
这是我的代码
。H:
#import <UIKit/UIKit.h>
@interface ViewController : UIViewController {
IBOutlet UIButton *b1;
IBOutlet UIButton *b2;
IBOutlet UIButton *b3;
IBOutlet UIButton *b4;
IBOutlet UIButton *b5;
IBOutlet UIButton *b6;
IBOutlet UIButton *b7;
IBOutlet UIButton *b8;
IBOutlet UIButton *b9;
IBOutlet UIButton *b10;
}
-(void)nextButtonToEnable;
@end
米:
-(IBAction)buttons:(id)sender {
b1.enabled = NO;
b2.enabled = NO;
b3.enabled = NO;
b4.enabled = NO;
b5.enabled = NO;
b6.enabled = NO;
b7.enabled = NO;
b8.enabled = NO;
b9.enabled = NO;
b10.enabled = NO;
b1.backgroundColor = [UIColor redColor];
b2.backgroundColor = [UIColor redColor];
b3.backgroundColor = [UIColor redColor];
b4.backgroundColor = [UIColor redColor];
b5.backgroundColor = [UIColor redColor];
b6.backgroundColor = [UIColor redColor];
b7.backgroundColor = [UIColor redColor];
b8.backgroundColor = [UIColor redColor];
b9.backgroundColor = [UIColor redColor];
b10.backgroundColor = [UIColor redColor];
[self nextButtonToEnable];
}
-(void)nextButtonToEnable {
sleep(1);
int nextButton = rand() % 10;
switch (nextButton) {
case 0:
b1.enabled = YES;
b1.backgroundColor = [UIColor blueColor];
break;
case 1:
b2.enabled = YES;
b2.backgroundColor = [UIColor blueColor];
break;
case 2:
b3.enabled = YES;
b3.backgroundColor = [UIColor blueColor];
break;
case 3:
b4.enabled = YES;
b4.backgroundColor = [UIColor blueColor];
break;
case 4:
b5.enabled = YES;
b5.backgroundColor = [UIColor blueColor];
break;
case 5:
b6.enabled = YES;
b6.backgroundColor = [UIColor blueColor];
break;
case 6:
b7.enabled = YES;
b7.backgroundColor = [UIColor blueColor];
break;
case 7:
b8.enabled = YES;
b8.backgroundColor = [UIColor blueColor];
break;
case 8:
b9.enabled = YES;
b9.backgroundColor = [UIColor blueColor];
break;
case 9:
b10.enabled = YES;
b10.backgroundColor = [UIColor blueColor];
break;
default:
break;
}
}
所以它就像睡眠在 b1.enabled = NO; 之间 和 b1.backgroundColor = [UIColor redColor];。
我该如何解决这个问题,因为我在互联网上没有找到任何东西。主要是因为我不知道要搜索什么:P。