Duck
Duck

Reputation: 36003

iphone - UIImagePickerController... making it appear from the right

I have to present a UIImagePickerController but when I do so, it always come from the bottom up. Is there a way to make it appear from the right to left?

I have tried this without success:

CATransition* transition = [CATransition animation];
transition.duration = 0.35f;
transition.type = kCATransitionPush;
transition.subtype = kCATransitionFromLeft;
[self.navigationController.view.layer addAnimation:transition forKey:kCATransition];

[self.navigationController presentModalViewController:picker animated:YES];

thanks

Upvotes: 1

Views: 675

Answers (1)

Nick Lockwood
Nick Lockwood

Reputation: 41005

I assume you are currently displaying the picker by calling presentModalViewController:animated: and passing YES as the animated option.

What you can do instead is present without animating, and instead cover the appearance using your own transition animation. The example below would present from the right:

CATransition *transition = [CATransition animation];
transition.duration = 0.5;
transition.timingFunction = [CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseInEaseOut];
transition.type = kCATransitionMoveIn;
transition.subtype = kCATransitionFromRight;
[self.view.window.layer addAnimation:transition forKey:nil];

[self presentModalViewController:pickerController animated:NO];

To use this you'll need to #import <QuartzCore/QuartzCore.h> and add the QuartzCore framework to the project.

Upvotes: 2

Related Questions