Objective c 为什么这个循环只运行一次?
只希望屏幕根据奇数或偶数条件反复闪烁蓝色/红色一段时间,但它只运行一次,而不是30000次。我错过了什么Objective c 为什么这个循环只运行一次?,objective-c,loops,Objective C,Loops,只希望屏幕根据奇数或偶数条件反复闪烁蓝色/红色一段时间,但它只运行一次,而不是30000次。我错过了什么 -(IBAction) changeBackgroundColor:(id)sender { for (int y = 0; y < 30000; y++) { if(y % 2) { self.view.backgroundColor = [UIColor blueColor]; colorVi
-(IBAction) changeBackgroundColor:(id)sender
{
for (int y = 0; y < 30000; y++)
{
if(y % 2)
{
self.view.backgroundColor = [UIColor blueColor];
colorView.backgroundColor = [UIColor redColor];
} else {
self.view.backgroundColor = [UIColor redColor];
colorView.backgroundColor = [UIColor blueColor];
}
}
}
-(iAction)changeBackgroundColor:(id)发件人
{
对于(int y=0;y<30000;y++)
{
如果(y%2)
{
self.view.backgroundColor=[UIColor blueColor];
colorView.backgroundColor=[UIColor redColor];
}否则{
self.view.backgroundColor=[UIColor redColor];
colorView.backgroundColor=[UIColor blueColor];
}
}
}
循环运行30000次,但屏幕只更新一次。要使对UIKit对象的更改生效,您需要退出到runloop。您可能想设置一个NSTimer,并在回调中切换背景颜色。您正在“闪烁”30000次,而从未返回到iOS主系统,让它有机会显示每次闪烁的结果。你需要眨眼一次,回到iOS,回来,再次眨眼,回到iOS,等等。如果你想获得眨眼效果,你可以(也可能应该)使用核心动画
我在这里回答了一个类似的问题。