【问题标题】:Push and Pop animations in a navigation based app基于导航的应用程序中的推送和弹出动画
【发布时间】:2015-07-20 08:52:05
【问题描述】:

我有一个基于导航的应用程序,我想更改推送和弹出动画的动画。我该怎么做?

当我推送任何视图控制器时,它表示为弹出,当我弹出任何视图控制器时,它表示为推送。

【问题讨论】:

  • 从 iOS 7 开始,有官方 API;请参阅 UINavigationControllerDelegate 的自定义过渡动画支持。还有一个关于此的 WWDC 2013 视频。从这里你必须看看它是否支持 ios8 等。

标签: ios animation navigation


【解决方案1】:
   CATransition *transition = [CATransition animation];
    transition.duration = 0.3f;
    transition.timingFunction = [CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseInEaseOut];
    transition.type = kCATransitionPush;
        transition.subtype=kCATransitionFromRight;
    kCATransitionFromLeft   or  kCATransitionFromRight
    [self.navigationController.view.layer addAnimation:transition forKey:nil];

在为自定义动画推送视图控制器之前添加它

【讨论】:

    【解决方案2】:
    -(void)pushViewController:(UIViewController *)viewController{
    
        float width = self.frame.size.width;
        float height = self.frame.size.height;
    
        [viewController.view setFrame:CGRectMake(width, 0.0, width, height)];
        [self addSubview:viewController.view];   
        [UIView animateWithDuration:0.33f
                              delay:0.0f
                            options:UIViewAnimationOptionCurveEaseInOut | UIViewAnimationOptionAllowUserInteraction
                         animations:^{
                             [viewController.view setFrame:self.frame];
                             [self setFrame:CGRectMake(0.0, 0.0, width, height)];
                         }
                         completion:^(BOOL finished){
    
                         }];
    
    }
    

    【讨论】:

      猜你喜欢
      • 2011-01-14
      • 2011-09-19
      • 2020-11-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-07
      • 2019-12-09
      相关资源
      最近更新 更多