1

可能な繰り返し

私は現在、次のようなブロックアニメーションを持っています...

[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)をコミットします。

これらの方法はどれも機能しません。停止したいときにアニメーションがまだ計算中であり、それを停止する関数が呼び出されていることを確認しました。

私の推測では、「停止」メッセージを間違ったオブジェクトに送信しており、それを処理するのに十分な経験がない単純な修正であると思われます。

4

1 に答える 1