1. ホーム
  2. アイオス

[解決済み] [Solved] UIViewのアニメーションをキャンセルする?

2022-04-01 12:46:54

質問

をキャンセルすることは可能ですか? UIView アニメーションが進行中である場合、そのアニメーションを使用することができますか?それともCAレベルまで落とさなければならないのでしょうか?

i.e. 私はこのようなことをしました(多分、アニメーションの終了アクションも設定するのでしょう)。

[UIView beginAnimations:nil context:NULL];
[UIView setAnimationDuration:duration];
[UIView setAnimationCurve: UIViewAnimationCurveLinear];
// other animation properties

// set view properties

[UIView commitAnimations];

しかし、アニメーションが完了し、アニメーション終了イベントを受け取る前に、それをキャンセルしたいのです(短く切り上げます)。これは可能なのでしょうか?ググってみると、同じような質問をしている人が数人いますが、答えはありません。

解決方法は?

私のやり方は、終点までの新しいアニメーションを作成することです。非常に短い継続時間を設定し、必ず +setAnimationBeginsFromCurrentState: メソッドで現在の状態から開始します。YESにすると、現在のアニメーションが短くカットされます。このような感じです。

[UIView beginAnimations:nil context:NULL];
[UIView setAnimationBeginsFromCurrentState:YES];
[UIView setAnimationDuration:0.1];
[UIView setAnimationCurve: UIViewAnimationCurveLinear];
// other animation properties

// set view properties

[UIView commitAnimations];