0

私はそのようなコードを使用して新しいビューを提示していますが、それは良いことでも悪いことでもありません。現在、デフォルトのアニメーションは下から上にビューを表示していますが、右から左にアニメーション化(フライイン)したいのですが、デフォルトのアニメーションタイプを変更することはできますか?ありがとう。

[self presentModalViewController:navController animated:animated];
4

2 に答える 2

1

次のように、スライドアップアニメーションを無効にできます。

[self presentModalViewController:navController animated:NO];

次に、独自のアニメーションコードを提供できます。

navController.view.frame = CGRectMake(320, 0, navController.view.frame.size.width, navController.view.frame.size.height);

[UIView beginAnimations:nil context:nil];
[UIView setAnimationDuration:0.5];
[UIView setAnimationCurve:UIViewAnimationCurveEaseInOut];
navController.view.frame = CGRectMake(0, 0, navController.view.frame.size.width, navController.view.frame.size.height);
[UIView commitAnimations];

この例では、スムーズなスピードカーブで右からの「フライイン」が得られます。

もう1つの方法は、ナビゲーションコントローラーで右から組み込みのスライドインを使用することです。

[self.navigationController pushViewController:navController animated:YES];

これでは、top-viewcontrollerがUINavigationControllerである必要があり、そのrootcontrollerがviewcontrollerである必要があります。次に、他のビューコントローラをプッシュできます。

于 2012-06-23T14:49:14.657 に答える
0

私はこれを行いました、そしてそれは私のために働いています:

[UIView beginAnimations:nil context:nil];
            [UIView setAnimationDuration:0.6];
            [UIView setAnimationDelegate:self];
            [UIView setAnimationTransition:UIViewAnimationTransitionFlipFromRight forView:self.View2.superview cache:YES];
            [self.View2 removeFromSuperview];   
            [self performSelector:@selector(replaceViews2) withObject:nil afterDelay:0.6];
            [UIView commitAnimations];
于 2012-06-23T15:15:49.390 に答える