两个界面切换翻转动画

界面切换动画应用很常见,其中翻转动画可以带来很优良的用户体验.可以采取两种方法实现翻转动画.

第一种方法:主要利用

+ (void)transitionFromView:(UIView *)fromView toView:(UIView *)toView duration:(NSTimeInterval)duration options:(UIViewAnimationOptions)options completion:(void (^ __nullable)(BOOL finished))completion NS_AVAILABLE_IOS(4_0);

首先创建一个viewController添加需要展现和翻转显示的View,并在该控制器的view上添加拖拽手势.

 

  [self.view addSubview:self.yellowView];
   UISwipeGestureRecognizer *panGestureRecognizer = [[UISwipeGestureRecognizer alloc] initWithTarget:self
                                                                        action:@selector(swipeButtonAction:)];
    [self.view addGestureRecognizer:panGestureRecognizer];


然后在手势方法中添加翻转动画

 

 

 self.goToFrontView = !self.goToFrontView;
    UIView *fromView = self.goToFrontView ? self.yellowView : self.redView;
    UIView *toView = self.goToFrontView ? self.redView : self.yellowView;
    UIViewAnimationOptions transitionDirection = UIViewAnimationOptionTransitionFlipFromRight;
    [UIView transitionFromView:fromView
                        toView:toView
                      duration:1.0
                       options:transitionDirection
                    completion:^(BOOL finished) {
                            //you can write your code here,dlx edit
                    }]; fromView
                        toView:toView
                      duration:1.0
                       options:transitionDirection
                    completion:^(BOOL finished) {
                            //you can write your code here,dlx edit
                    }]; 

第二种方法和第一种方法类似,其主要利用

 

- (void)transitionFromViewController:(UIViewController *)fromViewController toViewController:(UIViewController *)toViewController duration:(NSTimeInterval)duration options:(UIViewAnimationOptions)options animations:(void (^ __nullable)(void))animations completion:(void (^ __nullable)(BOOL finished))completion NS_AVAILABLE_IOS(5_0);

就是ViewController的动画.

于是,类似的就是先在创建的ViewController里添加子视图控制器,即要展示的控制器.

 

    redView = [redViewController new];
    yellowView = [yellowViewController new];
  
    [self addChildViewController:redView];
    [self addChildViewController:yellowView];
    [redView didMoveToParentViewController:self];
    [yellowView didMoveToParentViewController:self];
  [self.view addSubview:self.yellowView];


然后在ViewController里添加拖动手势

 

 

   UISwipeGestureRecognizer *panGestureRecognizer = [[UISwipeGestureRecognizer alloc] initWithTarget:self
                                                                        action:@selector(swipeButtonAction:)];
    [self.view addGestureRecognizer:panGestureRecognizer];

当然最重要的步骤便是在拖动方法里实现翻转动画方法

 

 

  self.goToFrontView = !self.goToFrontView;
      oldViewController =self.goToFrontView ?yellowView:redView;
      newViewController =self.goToFrontView ?redView:yellowView;
 [self addChildViewController:oldViewController];
    [oldViewController didMoveToParentViewController:self];
    [self addChildViewController:newViewController];
    [self transitionFromViewController:oldViewController toViewController:newViewController
          duration:1.0 options:UIViewAnimationOptionTransitionFlipFromRight animations:nil completion:^(BOOL finished) {
         //you can write your code here ,dlx edit
    }];oldViewController toViewController:newViewController
          duration:1.0 options:UIViewAnimationOptionTransitionFlipFromRight animations:nil completion:^(BOOL finished) {
         //you can write your code here ,dlx edit
    }];


至此,就实现了上述功能

 

 

 

 

 

 

 

 

 

 

 

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值