William Shelton
William Shelton

Reputation: 17

Looking for a within app transition (revolving screen effect)

I want a transition within my app that is like the mystery revolving wall from old scooby doo cartoons. I want the screen to revolve when switching views. Anyone point me in the right direction for the possibility of accomplishing this?

Upvotes: 0

Views: 407

Answers (2)

danh
danh

Reputation: 62676

Or this, which uses far less ink:

UIView *bookCaseView;    // this is the container... the haunted wall
UIView *booksView;       // just an ordinary set of books, right?
UIView *spookyBackside;  // ruh-roh, raggy!

[UIView transitionWithView:containerView
           duration:0.2
           options:UIViewAnimationOptionTransitionFlipFromLeft
           animations:^{
               [booksView removeFromSuperview];
               [bookCaseView addSubview:spookyBackside]; }
           completion:NULL];

Upvotes: 2

Joel
Joel

Reputation: 16134

I think this is what you are looking for:

[UIView beginAnimations:nil context:nil];
[UIView setAnimationDuration:1.0];

//optional if you want to do something after the animation
[UIView setAnimationDelegate:self];
[UIView setAnimationDidStopSelector:@selector(myAnimationDidFinish:finished:context:)];
//

[view2 setFrame:CGRectMake(0, 0, view2.frame.size.width, view2.frame.size.height)];
[view1 addSubview:view2];

[UIView setAnimationTransition:UIViewAnimationTransitionFlipFromRight forView:view1 cache:YES];
[UIView commitAnimations];

And to flip back:

[UIView beginAnimations:nil context:nil];
[UIView setAnimationDuration:1.0];

//optional if you want to do something after the animation
[UIView setAnimationDelegate:self];
[UIView setAnimationDidStopSelector:@selector(myOtherAnimationDidFinish:finished:context:)];
//

[view2 removeFromSuperview];

[UIView setAnimationTransition:UIViewAnimationTransitionFlipFromLeft forView:view1 cache:YES];
[UIView commitAnimations];

Upvotes: 0

Related Questions