可能な繰り返し
私は現在、次のようなブロックアニメーションを持っています...
[UIView animateWithDuration:0.25 delay:0.0 options:nil animations:^{
self.imageView.image = /* function that returns image */
} completion:^(BOOL finished){
[UIView animateWithDuration:0.25 delay:0.0 options:nil animations:^{
self.imageView.image = /* function that returns image */
} completion:^(BOOL finished){
[UIView animateWithDuration:0.25 delay:0.0 options:nil animations:^{
self.imageView.image = /* function that returns image */
} completion:^(BOOL finished){/*...*/}
でこれをキャンセルする方法を考えていviewWillDisappear
ます。私が試してみました...
[self.view.layer removeAllAnimations];
[self.imageView.layer removeAllAnimations];
finished
変数を と の両方YES
に設定しますNO
。- をブロックに挿入し
if(done==YES) return
ますcompletion{}
。 - ...そして、このgistのように短いアニメーション ( after after
removeAllAnimations
)をコミットします。
これらの方法はどれも機能しません。停止したいときにアニメーションがまだ計算中であり、それを停止する関数が呼び出されていることを確認しました。
私の推測では、「停止」メッセージを間違ったオブジェクトに送信しており、それを処理するのに十分な経験がない単純な修正であると思われます。