views:

408

answers:

1

I have a custom button on a view controller in the navigation controller's heirarchy, that when pressed, pops the visible view controller.

I want to use UIView's transform property to animate the closing of the view controller. It works, but if I use `popViewControllerAnimated:YES', the default left slide of the animation is still there, though my custom transform also works.

If I set popViewControllerAnimated:NO it doesn't animate anything at all.

I also looked into using CATransition which works when I have popViewControllerAnimated set to NO, but there isn't a "zoom" effect that's part of the public API, and I don't want to use the private effect. Custom filters are also not available for iPhone, only OS X.

So I guess my questions are:

1) Is there a way to remove the the left slide in the default transition yet still have a custom animation using transform?

2) Some way to use a custom filter for CATransition?

3) If I use a private API for the zoom effect how likely will Apple toss my app in the rejection bin?

Does anyone have a solution I'm overlooking?

+3  A: 
Ron Srebro
Thanks for your tip. Unfortunately though I need to be able to use the `UIView` animation using the `transform` property so that I can scale the view from a small point to full-size, to get a zooming effect. There seems to be no way to do that using `CATransition`. :(
Calvin L
I haven't tried it, but what if you just replace the CATransition in my code with CABasicAnimation? See updated answer for how to animate the frame of a view with CABasicAnimation
Ron Srebro
OK, I don't think it can be done with CABasicAnimation, but rather with CAkeyframeAnimation. see answer.
Ron Srebro
This is very cool -- thanks! I've got a nice basic scale "zoom out" effect working, but the background during the scaling is white. Any idea how I can remove that and make it transparent?
Calvin L
Is there anything beneath the view? What do you want to see instead of the white?
Ron Srebro
I want to see the view that's under the view that's being "zoomed out". Once the animation finishes the view pops into view, but only after the white disappears.
Calvin L
For the sake of future people finding this question, I've posted a similar question here: http://stackoverflow.com/questions/4044181/iphone-uinavigationcontroller-custom-animation-with-catransaction.
RyanJM