2009-07-20 17 views
0

Core Animationを実行していて、ボタンを押したときに一時停止したいと思っています。したがって、メソッド-pauseAnimationがあります。アニメーションが一時停止しているとき、アニメーション表示中は、アニメーション表示中に現在の状態のままにしておきます。つまり、ビューが左上から右下に移動し、途中でアニメーションが一時停止する場合、ビューは中央にとどまるはずです。 これを行う方法はありますか?現在実行中のアニメーションを一時停止するにはどうすればよいですか?

私が知る限り、setAnimationsEnabled = NOオプションがありますが、アニメーションが実行されているときには動作しません。

答えて

1

アニメーションを無効にし、モデルレイヤの値をプレゼンテーションレイヤの値(アニメーションを定義するすべてのプロパティ)に設定することで、これを行うことができます。

例えば、 layer.transform = layer.presentationLayer.transform;

アニメーションを再開すると、アニメーションが再び有効になり、現在の位置から目的の最終位置にアニメートされます(許容できるようにカーブなどを調整する必要があります)。

+0

モデル層の値をプレゼンテーション層の値に設定するにはどうすればよいですか? myView.transform = myview.layer.transform? – Thanks

+0

UIViewsを使用している場合は、view.layer.transform = view.layer.presentationLayer.transformのように、レイヤーにアクセスするにはview.layerを呼び出す必要があります。 –

関連する問題