只是希望屏幕根据奇数或偶数条件反复闪烁蓝色/红色一段时间,但它只运行一次,而不是30,000次。我错过了什么?
-(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];
}
}
}
答案 0 :(得分:5)
你正在“闪烁”30,000次而没有返回iOS主系统,让它有机会显示你每次闪烁的结果。您需要闪烁一次,返回iOS,返回,再次闪烁,返回iOS等等。
答案 1 :(得分:3)
循环运行30000次,但屏幕只更新一次。您需要退出runloop才能使UIKit对象的更改生效。您可能想要设置NSTimer并在回调中切换背景颜色。
答案 2 :(得分:2)
如果你试图获得闪烁效果,你可以(也可能应该)使用Core Animation。
我在这里用example code回答了类似的问题。