0

ビューをある場所から別の場所に移動する簡単なアニメーションがあります。メソッド宣言で設定された期間に従わないという事実を除いて、アニメーションは正しく機能します...

[UIView beginAnimations:@"listAnimationIn" context:nil];
[UIView animateWithDuration:1.0
                      delay:1.0
                    options:UIViewAnimationCurveLinear
                 animations:^{
                     lvc.view.frame = CGRectMake(0, 0, 320, 480);
                 }
                 completion:nil];
[UIView commitAnimations];

遅延は機能しますが、持続時間にどのような値を入力しても、アニメーションは高速に実行されます (0.5 から 2000 までの値を試しました)。私もいくつかUIViewAnimationCurveのオプションを試しましたが、何もうまくいかないようです。

何か不足していますか?

4

1 に答える 1

3

-beginAnimations:context:-commitAnimationsメッセージは必要ありません。それは昔ながらのやり方で、実際に混ぜるべきではありません。-animateWithDuration:delay:options:animations:completion:メソッドを呼び出すだけです。また、完了ブロックを追加すると、アニメーションが早期に終了したか完了まで実行されたかを示すブール変数が渡されます。これは、アニメーションが遅すぎるか、競合するアニメーションが同じビュー階層で開始されている場合に発生します (古いスタイルの begin/commit 呼び出しで発生します)。

于 2012-08-27T20:59:28.853 に答える