2011-07-19 10 views
0

奇数条件または偶数条件に基づいて青/赤を何度か繰り返して点滅させたいだけですが、30,000回ではなく1回だけ実行されます。私は何が欠けていますか?なぜこのループは1回だけ実行されますか?

-(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

[UILabelを動的に更新]の複製が可能です。(http://stackoverflow.com/questions/6336991/dynamically-updating-a-uilabel) –

答えて

3

ループは30000回実行されますが、画面は1回だけ更新されます。 UIKitオブジェクトの変更を有効にするには、runloopに移動する必要があります。 NSTimerを設定し、コールバック内の背景色を切り替えたいと思うかもしれません。

5

iOSのメインシステムに戻らずに30,000回「点滅」して、瞬きの結果を表示することができます。一度点滅したり、iOSに戻ったり、戻ってきたり、再び点滅したり、iOSなどに戻ったりする必要があります。

2

点滅する効果を得ようとするなら、Core Animationを使うことができます。

私はexample codeと同様の質問に答えました。

関連する問題