首页 > 代码库 > IOS 转场动画

IOS 转场动画

     转场动画是用于两个view之前的切换效果;普通动画和关键帧动画是用于view中的某一个子视图的动画效果;
 
 
CATransition *animation = [CATransition animation];
animation.duration = 0.5f;//时间
animation.type = kCATransitionFade;
animation.subtype = KCATransitionFromTop;
[self.view.layer addAnimation:animation forked:@“animation”];
 
fillmode 属性与动画效果无关,主要是用来设置动画开始前或者动画结束后的效果。
     kCAFillModeRemoved   默认,当动画开始前和动画结束后,动画对layer都没有影响,动画结束后,layer会恢复到之前的状态
     kCAFillModeForwards  当动画结束后,layer会一直保持着动画最后的状态
     kCAFillModeBackwards 和kCAFillModeForwards相对,具体参考上面的URL
     kCAFillModeBoth      kCAFillModeForwards和kCAFillModeBackwards在一起的效果
 
removeOnCompletion 一般情况下不需要设置,当启用fillmode后要出现效果就必须设置为NO;
比如:要设置一个跟随手指移动的动画,当动画执行完毕后,不设置fillmode为forwards的话这个动画结束之后还是回变成动画执行之前的那个效果;
 
 
type
      *  各种动画效果  其中除了‘fade‘, `moveIn‘, `push‘ , `reveal‘ ,其他属于似有的API(我是这么认为的,可以点进去看下注释).
     *  ↑↑↑上面四个可以分别使用‘kCATransitionFade‘,
                            ‘kCATransitionMoveIn‘,
                            ‘kCATransitionPush‘,
                            ‘kCATransitionReveal‘来调用.
     *  @"cube"                     立方体翻滚效果
     *  @"moveIn"                   新视图移到旧视图上面
     *  @"reveal"                   显露效果(将旧视图移开,显示下面的新视图)
     *  @"fade"                     交叉淡化过渡(不支持过渡方向)             (默认为此效果)
     *  @"pageCurl"                 向上翻一页
     *  @"pageUnCurl"               向下翻一页
     *  @"suckEffect"               收缩效果,类似系统最小化窗口时的神奇效果(不支持过渡方向)
     *  @"rippleEffect"             滴水效果,(不支持过渡方向)
     *  @"oglFlip"                  上下左右翻转效果
     *  @"rotate"                   旋转效果
     *  @"push"                   
     *  @"cameraIrisHollowOpen"     相机镜头打开效果(不支持过渡方向)
     *  @"cameraIrisHollowClose"    相机镜头关上效果(不支持过渡方向)
     */
     
     *  kCATransitionFade            交叉淡化过渡
     *  kCATransitionMoveIn          新视图移到旧视图上面
     *  kCATransitionPush            新视图把旧视图推出去
     *  kCATransitionReveal          将旧视图移开,显示下面的新视
 
subtype
     *  各种动画方向
     *
     *  kCATransitionFromRight;      同字面意思(下同)
     *  kCATransitionFromLeft;
     *  kCATransitionFromTop;
     *  kCATransitionFromBottom;
     */
    
     *  当type为@"rotate"(旋转)的时候,它也有几个对应的subtype,分别为:
     *  90cw    逆时针旋转90°
     *  90ccw   顺时针旋转90°
     *  180cw   逆时针旋转180°
     *  180ccw  顺时针旋转180°
timingFunction
 
     *  用于变化起点和终点之间的插值计算,形象点说它决定了动画运行的节奏,比如是均匀变化(相同时间变化量相同)还是
     *  先快后慢,先慢后快还是先慢再快再慢.
     *
     *  动画的开始与结束的快慢,有五个预置分别为(下同):
     *  kCAMediaTimingFunctionLinear            线性,即匀速
     *  kCAMediaTimingFunctionEaseIn            先慢后快
     *  kCAMediaTimingFunctionEaseOut           先快后慢
     *  kCAMediaTimingFunctionEaseInEaseOut     先慢后快再慢
     *  kCAMediaTimingFunctionDefault           实际效果是动画中间比较快.
 
 
 

IOS 转场动画