zoukankan      html  css  js  c++  java
  • 猫猫学IOS(四十一)UI之核心动画 两行代码搞定3D转场(做android的哭死)

    猫猫分享,必须精品

    原创文章,欢迎转载。转载请注明:翟乃玉的博客
    地址:http://blog.csdn.net/u013357243?viewmode=contents
    源码素材地址:http://blog.csdn.net/u013357243/article/details/45583465

    效果:

    这里写图片描述

    代码:

    其实代码很少,苹果都给封装好了

    // 1.创建核心动画
        CATransition *ca = [CATransition animation];
        // 1.1动画过渡类型
        ca.type = @"cube";
        // 1.2动画过渡方向
        ca.subtype =  kCATransitionFromRight;
        // 1.3动画起点(在整体动画的百分比)
        //ca.startProgress = 0.5;
        //1.3动画终点(在整体动画的百分比)
        //ca.endProgress = 0.5;
    
    
        // 动画时间
        ca.duration = 1;
    
        // 2.添加核心动画
        [self.iconView.layer addAnimation:ca forKey:nil];

    这里有童鞋说不对,说者好多行,猫猫给简化下哈,还剩下三行,但是严格说,ca.type = @”cube”;这一句就搞定了。。

    CATransition *ca = [CATransition animation]
    ca.type = @"cube";
    [self.iconView.layer addAnimation:ca forKey:nil];

    CATransition专场动画

    仅仅一个type就搞定了这么牛逼的转场动画。猫猫表示以前做的android用个平移动画都想哭。。

    注意:

    CAAnimation的子类,用于做转场动画,能够为层提供移出屏幕和移入屏幕的动画效果。iOS比Mac OS X的转场动画效果少一点
    UINavigationController就是通过CATransition实现了将控制器的视图推入屏幕的动画效果
    属性解析:
    type:动画过渡类型
    subtype:动画过渡方向
    startProgress:动画起点(在整体动画的百分比)
    endProgress:动画终点(在整体动画的百分比)

    过渡效果

    fade     //交叉淡化过渡(不支持过渡方向) 
    kCATransitionFade push     //新视图把旧视图推出去  kCATransitionPush moveIn   //新视图移到旧视图上面   kCATransitionMoveIn reveal   //将旧视图移开,显示下面的新视图  kCATransitionReveal cube     //立方体翻滚效果 
    oglFlip  //上下左右翻转效果 
    suckEffect   //收缩效果,如一块布被抽走(不支持过渡方向) 
    rippleEffect //滴水效果(不支持过渡方向) 
    pageCurl     //向上翻页效果 
    pageUnCurl   //向下翻页效果 
    cameraIrisHollowOpen  //相机镜头打开效果(不支持过渡方向) cameraIrisHollowClose //相机镜头关上效果(不支持过渡方向)
      
    
     过渡方向 
    kCATransitionFromRight 
    kCATransitionFromLeft 
    kCATransitionFromBottom
    kCATransitionFromTop
    
    
    CATransition的使用
    CATransition *anim = [CATransition animation];
    anim.type = @“cube”; // 动画过渡类型
    anim.subtype = kCATransitionFromTop; // 动画过渡方向
    anim.duration = 1; // 动画持续1s
    // 代理,动画执行完毕后会调用delegate的animationDidStop:finished:
    anim.delegate = self;
    
    /*******中间穿插改变layer属性的代码**********/
    
    [layer addAnimation:anim forKey:nil];
    
    
    
  • 相关阅读:
    数字音频技术:混音器
    android studio: 为现有项目添加C++支持
    android: requestLayout(), invalidate(), postInvalidate() 方法区别
    android: Canvas的drawArc()方法的几个误区
    MediaPlayer: MediaPlayer中的prepare方法和prepareAsync方法的区别
    MediaPlayer: 在不同控件之间实现视频的无缝切换的方法
    android studio: 让项目通过阿里云 maven jcenter 下载依赖资源
    android: ListView设置emptyView 误区
    Javascript继承
    TortoiseSVN 只取下或更新部分文件的方法(Sparse Update/Sparse Checkout)
  • 原文地址:https://www.cnblogs.com/znycat/p/4521007.html
Copyright © 2011-2022 走看看