6

iOS ドキュメントでは、beginAnimation-commitAnimation の使用は推奨されていません。そのため、アニメーションとトランジションには、^blocks を利用する新しいメソッドがあります。ただし、transitionWithView:duration:options:animations:completion メソッドを使用すると、トランジション効果が得られません。したがって、次のように記述します。

[UIView beginAnimations:nil context:nil];
[UIView setAnimationDuration:1];
[UIView setAnimationCurve:UIViewAnimationCurveEaseIn];
[UIView setAnimationTransition:UIViewAnimationTransitionCurlUp 
                       forView:self.view cache:YES];

firstView.hidden = YES;
secondView.hidden = NO;
[UIView commitAnimations];

動作しますが、次の方法で行うと

[UIView transitionWithView:self.view duration:1.0 options 
      UIViewAnimationCurveEaseIn|UIViewAnimationTransitionCurlUp
        animations:^{
          firstView.hidden = YES;
          secondView.hidden = NO;
         } completion:NULL
         ];

トランジション効果が得られません。私は何が欠けていますか?

4

1 に答える 1

18

OK、iOS 4 以降で利用可能なメソッドでアニメーションとトランジションを機能させるために、誰もが注意する必要がある微妙な詳細を見つけました。メソッドのアニメーション/トランジション オプションを指定するときは、定数を使用する必要があります。その中に「オプション」という言葉。だから書く代わりに

UIViewAnimationCurveEaseIn|UIViewAnimationTransitionCurlUp

私たちは書くべきです

UIViewAnimationOptionCurveEaseIn|UIViewAnimationOptionTransitionCurlUp

トランジションがうまく機能したことを修正した後

于 2011-09-20T04:35:01.370 に答える