1. ググれば、以下のコードが出てきます。これを埋め込めば、とりあえずブリンクします。
[UIView animateWithDuration:0.5 delay:0
options:UIViewAnimationOptionAutoreverse | UIViewAnimationOptionRepeat
animations:^{
(ブリンクさせたいオブジェクト).alpha = 0;
}
completion:^(BOOL finished){
(ブリンクさせたいオブジェクト).alpha = 1;
}
];
2. 動かしたり、止めたりしたい時は、どうするの?
私は、(ブリンクさせたいオブジェクト).hiddenでコントロールしてます。
1.のブロックは、裏で動きっぱなしになりますが、無理に止めるより放っておいた方が良いという判断です。
3. 困ったこと。
他のアプリに遷移し、戻ってきた時、ブリンクしなくなる点だと思います。
これはTimerに1.を埋め込んで、回すことで回避している人が、いらっしゃるようですが、
私は、enterForegroundに、1.を埋め込んで回避しています。
enterForegroundとは勝手命名のハンドラですが、UIApplicationWillEnterForegroundNotificationを受けるよう、viewDidLoadでNSNotificationCenterに登録したものです。
他のアプリから戻ってきた時に、呼び出されます。
4. 結局処方箋は何?
・viewWillAppearと、enterForegroundに、1.を埋め込む。
・hiddenで入切する。
かなと思います。
viewWillAppearは、ナビゲーションとかで他のタブに遷移し、戻ってきた時の対策です。
デバッガーでトレースすればわかりますが、
「他のタブに遷移→他のアプリに遷移→他のアプリから戻る→他のタブから戻る」
みたいなイジメ試験をやっても、正しく動作することがわかります。
0 件のコメント:
コメントを投稿