0

CGAffineTransformTranslate を使用してビューを移動していますが、移動を遅くしたいと考えています。[UIView setAnimationDuration] を使用してみましたが、何も実行されず、ドキュメントは iOS 4.0 以降での使用を推奨していません。

whatIfToolBar.transform = CGAffineTransformTranslate(whatIfToolBar.transform,0.0, -whatIfToolBar.frame.size.height);

期間を設定する適切な方法は何ですか?

ありがとう、

ジョン

4

1 に答える 1

4

質問する前にもっと読むべきでした...

[UIView setAnimationDuration] は、Begin/Commit メソッドを使用する場合にのみ機能し、アニメーションの開始とコミットの呼び出しの間、およびビューのアニメーション化可能なプロパティを変更する前に呼び出す必要があります。

iOS 4 以降のアプリケーションでは、アニメーションにブロック ベースの方法を使用する必要があります。ブロックメソッドを呼び出すときに期間が設定されます。iOS 用 View プログラミング ガイドのアニメーション セクションを参照してください。

アプリケーションを iOS 3.2 以前で実行する場合は、Begin/Commit メソッドを使用する必要があります。

私の場合、Begin/Commit メソッドを使用しました...

[UIView beginAnimations:@"whatIfToolBar" context:whatIfToolBar];

[UIView setAnimationDuration:0.5];
whatIfToolBar.transform = CGAffineTransformTranslate(CGAffineTransformIdentity,0.0, - whatIfToolBar.frame.size.height);

[UIView commitAnimations];

ブロックベースのメソッドを使用すると、次のようになります...

[UIView animateWithDuration:0.5 
          animations:^{
               whatIfToolBar.transform = CGAffineTransformTranslate(CGAffineTransformIdentity,0.0, -whatIfToolBar.frame.size.height);

          }
];

ジョン

于 2011-05-10T11:09:19.533 に答える