の場合にアニメーションが終了するかどうかをチェックする方法Circle
と呼ばれるカスタムUIView
クラスをサブビューとして追加するコントローラがあります。具体的なインスタンスCircle
を "circle"と呼ぶことにしましょう。アニメーションブロックが
Circle
、animateExpand
にはビューをアニメーション表示する方法があります。 、NSMutableArray circleArray
に追加拡張をアニメーション、および膨張の終わりに、私はからオブジェクトを削除したい、私はalloc
とinit
円にたい(コントローラに住んでいる)次のコードに
アレイ。私の試み:
Circle *circle = [[Circle alloc] init];
[circleArray addObject:circle];
[circle animateExpand];
[circleArray removeObjectIdenticalTo:circle];
[circle release];
アニメーションが終了する前に[circleArray removeObjectIdenticalTo:circle];
が呼び出されます。アニメーションは別々のスレッドで行われるため、 Circle
クラスはcircleArray
について知らないので、私はcompletion:^(BOOL finished){ }
に削除を実装できません。
どのような解決策が役に立ちます、ありがとう!
注:素晴らしいブロックのものはiOS4.xだけです! –
それはうまくいくと思う。私がgonaをしている場合を除いて、私はコントローラ全体にアニメーションコードを移動させるかもしれません... – bogardon
'Circle'クラスの項目は' Circle'クラスのインターフェースの一部ではありませんので(あなたの質問で言ったように)後者が前者について知る方法はありません。 'Circle'を修正してブロック引数を受け入れ、それを内部の' animateWithDuration:animations:completion: '呼び出しに渡すこともできますが、これはあなたがしたいことに対する一般的な解決策です。 :) –