以下に示すように、ラベルをフェードインおよびフェードアウトする非常に単純な繰り返しアニメーションを実行しています。アニメーションが終了するたびに完了ブロックが呼び出されると想定しましたが、それを使用UIViewAnimationOptionRepeat
すると呼び出されることはありません。では、このアニメーションを停止するにはどうすればよいでしょうか。
を使用できることはわかっていますが[self.lbl.layer removeAllAnimations];
、それは非常に突然終了します。アニメーションのサイクルがいつ終了したかを知りたいので、その時点で停止できます。
[UIView animateWithDuration:1.0 delay:0 options:UIViewAnimationOptionAutoreverse | UIViewAnimationOptionRepeat | UIViewAnimationOptionCurveEaseInOut animations:^{
self.lbl.alpha = 0;
} completion:^(BOOL finished){
if (finished) NSLog(@"done");
}];