1. ホーム
  2. iphone

[解決済み] iPhone UIViewアニメーションのベストプラクティス

2022-05-14 16:07:47

質問

iPhone でのビュー遷移のアニメーションのベストプラクティスは何ですか?

例えば ViewTransitions のようなコードを使っています。

CATransition *applicationLoadViewIn = [CATransition animation];
[applicationLoadViewIn setDuration:1];
[applicationLoadViewIn setType:kCATransitionReveal];
[applicationLoadViewIn setTimingFunction:[CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseIn]];
[[myview layer] addAnimation:applicationLoadViewIn forKey:kCATransitionReveal];

のようなコードスニペットもありますが、ネット上ではこのようなコードも出回っています。

[UIView beginAnimations:nil context:nil];
[UIView setAnimationDuration:0.75];
[UIView setAnimationDelegate:self];
[UIView setAnimationTransition:UIViewAnimationTransitionFlipFromRight forView:myview cache:YES];
[myview removeFromSuperview];
[UIView commitAnimations];

最良の方法は何でしょうか?もしスニペットも提供していただけると助かります。

ノートです。 2番目の方法が正しく動作しないことがあります。

どのように解決するのですか?

からの UIViewのリファレンス のセクションにある beginAnimations:context: メソッドを使用します。

このメソッドの使用は、iPhone OS 4.0以降では推奨されません。代わりにブロックベースのアニメーションのメソッドを使用する必要があります。

Tomさんのコメントによるブロックベース・アニメーションのEg

[UIView transitionWithView:mysuperview 
                  duration:0.75
                   options:UIViewAnimationTransitionFlipFromRight
                animations:^{ 
                    [myview removeFromSuperview]; 
                } 
                completion:nil];