objective-ciosuiviewanimationuiviewanimationtransition

How to flip an individual UIView (without flipping the parent view)


This is an iPad project where I have a UIView with several subViews, and I am trying to animate one of this UIViews using [UIView transitionFromView:toView:duration:options:completion], but when I run this method the whole parent view gets flipped! This is the code I'm using:

UIView *secondView = [[UIView alloc] initWithFrame:CGRectMake(200, 200, 300, 300)];
[newView setBackgroundColor:[UIColor redColor]];
    [UIView transitionFromView:self.firstView.view toView:secondView duration:1.0 options:UIViewAnimationOptionTransitionFlipFromLeft completion:nil];

Any idea on how can I flip between this views without animating the whole parent view? Thanks!


Solution

  • this code may helps you:

    put the two views you want to flip inside an unnamed view with the same size and link the IBOutlet UIView *newView,*oldView; to the views and put the new view on top

    bool a = NO;
    
    @implementation ViewController
    
    - (IBAction)flip:(id)sender 
    {
        if (a == NO) {
            [UIView transitionFromView:oldView toView:newView  
                      duration:1.0 
                      options:UIViewAnimationOptionTransitionFlipFromLeft 
                      completion:NULL];
            a = YES; // a = !a;
        }
        else {
            [UIView transitionFromView:newView toView:oldView  
                      duration:1.0 
                      options:UIViewAnimationOptionTransitionFlipFromLeft 
                      completion:NULL];
            a = NO; // a = !a;
        }
    }