Bin Chen
Bin Chen

Reputation: 63319

iphone dev: how to control the view transition animation?

I am using such code to present a new view, I don't it's good or not. Currently the default animation is show the view from bottom up, but i want it to animate from right to left(fly in), is it possible to change the default animation type and how? Thanks.

[self presentModalViewController:navController animated:animated];

Upvotes: 0

Views: 476

Answers (2)

JulenissensHjelper
JulenissensHjelper

Reputation: 969

You can disable the slide-up animation like this:

[self presentModalViewController:navController animated:NO];

Then you can provide your own animation code:

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];

This example gives you the "Fly-in" from right with a smooth speed-curve.

Another way is using the built in slide-in from right with navigationcontroller:

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

In this one, your top-viewcontroller needs to be a UINavigationController and it's rootcontroller needs to be your viewcontroller. Then you can push other viewcontrollers.

Upvotes: 1

mshau
mshau

Reputation: 503

I have done this and its working for me try ths:

[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];

Upvotes: 0

Related Questions