iOS动画技术——iOS 7自定义过渡动画

自定义过渡动画

1.iOS用户总是抱怨iOS视图过渡动画太少,但在iOS 7之后,这个问题已经不再是问题。因为iOS 7允许用户自定义视图过渡动画。
2.视图过渡,即视图之间的跳转,有两种情况:

  • 树形结构导航,通过UINavigationController控制视图堆栈实现视图过渡
  • 模态导航,通过UIViewController控制实现的。

    3.使用开源框架:HUAnmator, git地址:https://github.com/cinkster/HUAnimator




    树形结构导航

    UIViewControllerTransitioning:视图控制器过渡类

    UINavigationController:导航控制器类

    一。UIViewControllerTransitioning:视图控制器过渡类
    1.包含的字符串常量:

  • UITransitionContextFromViewControllerKey:用于过渡上下文中,用于获得过渡前的视图控制器
  • UITransitionContextToViewControllerKey:用于过渡上下文中,用于获得过渡后的视图控制器
  • UITransitionContextFromViewKey:用于过渡上下文中,用于获得过渡前的视图
  • UITransitionContextToViewKey:用于过渡上下文中,用于获得过渡后的视图

    2.UIViewControllerAnimatedTransitioning:视图控制器动画过渡协议

    应用:如果我们要自定义过渡动画,需要实现这个协议。
    包含的方法:

    必须实现的方法:
    执行自定义动画:- (void)animateTransition:(id )transitionContext;
    设置动画执行的时间:- (NSTimeInterval)transitionDuration:(id )transitionContext;
        其中,参数UIViewControllerContextTransitioning类封装过渡动画的上下文对象,通过这个对象
    我们可以获得过渡前后的视图控制器 UIViewController *fromVC = [transitionContext viewControllerForKey:UITransitionContextFromViewControllerKey]; UIViewController *toVC = [transitionContext viewControllerForKey:UITransitionContextToViewControllerKey]; 可选方法: 动画结束的时候调用:- (void)animationEnded:(BOOL) transitionCompleted;
    3.UIViewControllerContextTransitioning:视图控制器过渡上下文协议
    用于获得过渡前后的视图控制器:- (UIViewController *)viewControllerForKey:(NSString *)key;
    用于获得过渡前后的视图:- (UIView *)viewForKey:(NSString *)key;
        其中,参数key为上面的4个字符串常量
    
    

    二。UINavigationController:导航控制器类

    1.UINavigationControllerDelegate:导航控制器委托
    - (id )navigationController:(UINavigationController *)navigationController
                                       animationControllerForOperation:(UINavigationControllerOperation)operation
                                                    fromViewController:(UIViewController *)fromVC
                                                      toViewController:(UIViewController *)toVC 
    其中:参数UINavigationControllerOperation包含三个常量:
            UINavigationControllerOperationNone,
            UINavigationControllerOperationPush,
            UINavigationControllerOperationPop,
    


    模态导航自定义过渡动画

    模态导航自定过渡动画需要在视图控制中实现UIViewControllerTransitioningDelegate协议,它在UIViewControllerTransitioning类中定义,上面树形结构导航提到过


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值