transitionFromView方法的使用
效果
源码
// // ViewController.m // TransitionFromView // // Created by YouXianMing on 16/5/30. // Copyright © 2016年 YouXianMing. All rights reserved. // #import "ViewController.h" typedef enum : NSUInteger { kBottomView = 1000, kTopView, } EViewControllerTag; @interface ViewController () { UIView *redView; UIView *yellowView; UIView *containerView; } @end @implementation ViewController - (void)viewDidLoad { [super viewDidLoad]; // ContainerView containerView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 200, 350)]; containerView.center = self.view.center; [self.view addSubview:containerView]; // BottomView redView = [[UIView alloc] initWithFrame:containerView.bounds]; redView.tag = kBottomView; redView.backgroundColor = [UIColor redColor]; [containerView addSubview:redView]; // TopView yellowView = [[UIView alloc] initWithFrame:containerView.bounds]; yellowView.tag = kTopView; yellowView.backgroundColor = [UIColor yellowColor]; [containerView addSubview:yellowView]; // Button UIButton *button = [[UIButton alloc] initWithFrame:self.view.bounds]; [button addTarget:self action:@selector(buttonEvent:) forControlEvents:UIControlEventTouchUpInside]; [self.view addSubview:button]; } - (void)buttonEvent:(UIButton *)button { button.enabled = NO; [UIView transitionFromView:[containerView viewWithTag:kTopView] toView:[containerView viewWithTag:kBottomView] duration:0.5f options:UIViewAnimationOptionTransitionFlipFromLeft completion:^(BOOL finished) { button.enabled = YES; if ([[containerView viewWithTag:kBottomView] isEqual:redView]) { [containerView insertSubview:yellowView belowSubview:redView]; redView.tag = kTopView; yellowView.tag = kBottomView; } else { [containerView insertSubview:redView belowSubview:yellowView]; redView.tag = kBottomView; yellowView.tag = kTopView; } }]; } @end
细节