UIAnimation実行中に画面移動して戻ってくるとAnimationが止まっている件
こんなの基本なんだろうけど、ハマった件。
UIAnimationでVIewを点滅させていたのですが、他のViewをmodalで表示して戻ってくるとAnimatioが止まってしまう。なので、再度VIewDidAppearとかでAnimationを設定するのだけど動かない。はてさて、なぜか?
理由は、わかってみると当たり前で、UIViewを元の状態に戻さないことにありました。以下のコードは、Viewを赤=>白に変化させるAnimationですが、Viewを移動すると赤=>白に変化した状態で画面遷移します。その状態で元のViewに戻ってきてAnimatioを起動しても 白=>白の変化しかしないので、動いていない様に見えるわけ。なので一旦赤に戻す必要があるので、AnimationのComplitionに、元に戻す処理を書きます。
- (void)viewDidLoad { [super viewDidLoad]; //ここでは特になにもしない } -(void) viewDidAppear:(BOOL)animated { //任意のオプション UIViewAnimationOptions myOption = UIViewAnimationOptionCurveLinear //等速 | UIViewAnimationOptionRepeat ; //繰り返し //Animation登録 [UIView animateWithDuration:1.0 // アニメーションの秒数 delay:0.0 // 開始までの秒数 options:myOption animations:^{ _testView.backgroundColor = [UIColor whiteColor]; //プロパティの設定 } completion:^(BOOL finished){ _testView.backgroundColor = [UIColor redColor]; }]; }