切换两个UIVIew动画

#pragma mark - Animation code block
- (void)exchangeViewWithAnimation:(UIView *)view changeView:(UIView *)sView withView:(UIView *)eView animationType:(NSInteger)type
{
    
    NSUInteger sv = [[view subviews] indexOfObject:sView];
    NSUInteger ev = [[view subviews] indexOfObject:eView];
    
    CGContextRef context = UIGraphicsGetCurrentContext();
    [UIView beginAnimations:nil context:context];
    [UIView setAnimationCurve:UIViewAnimationCurveEaseInOut];
    [UIView setAnimationDuration:1.0];
    switch (type) {
        case 0:
            [UIView setAnimationTransition:UIViewAnimationTransitionFlipFromLeft forView:view cache:YES];
            [view exchangeSubviewAtIndex:sv withSubviewAtIndex:ev];
            break;
        case 1:
            [UIView setAnimationTransition:UIViewAnimationTransitionFlipFromRight forView:view cache:YES];
            [view exchangeSubviewAtIndex:sv withSubviewAtIndex:ev];
            break;
        default:
            break;
    }
    [UIView setAnimationDelegate:self];
    [UIView setAnimationDidStopSelector:@selector(animationFinished:)];
    [UIView commitAnimations];
    
}

//动画效果执行完毕
- (void) animationFinished: (id) sender{
    NSLog(@"animationFinished !");
}
 

相关推荐