美文网首页iOS_Swift
iOS复习-核心动画

iOS复习-核心动画

作者: Mr大喵喵 | 来源:发表于2018-03-16 16:41 被阅读23次

    动画按照功能和场景可以分为

    image.png

    显示层的动画可能比较熟悉都是UIView层的动画
    UIView动画实现方式
    UIView动画实现方式有普通方式和Block方式,不过平常我们一般会直接使用Block的方式。简单,粗暴,管用!

    而对于核心动画我们又可以分

    核心动画的常用属性
    • keyPath:可以指定keyPath为CALayer的属性值,并对它的值进行修改,以达到对应的动画效果,需要注意的是部分属性值是不支持动画效果的。
    • 以下是具有动画效果的keyPath:

    CATransform3D Key Paths : (example)transform.rotation.z
    rotation.x
    rotation.y
    rotation.z
    rotation 旋轉
    scale.x
    scale.y
    scale.z
    scale 缩放
    translation.x
    translation.y
    translation.z
    translation 平移
    CGPoint Key Paths : (example)position.x
    x
    y
    CGRect Key Paths : (example)bounds.size.width
    origin.x
    origin.y
    origin
    size.width
    size.height
    size

     opacity
     backgroundColor
     cornerRadius 
     borderWidth
     contents 
    
     Shadow Key Path:
     shadowColor 
     shadowOffset 
     shadowOpacity 
     shadowRadius
    
    • duration:动画的持续时间
    • repeatCount:动画的重复次数
    • timingFunction:动画的时间节奏控制
      timingFunctionName的enum值如下:

    kCAMediaTimingFunctionLinear 匀速
    kCAMediaTimingFunctionEaseIn 慢进
    kCAMediaTimingFunctionEaseOut 慢出
    kCAMediaTimingFunctionEaseInEaseOut 慢进慢出
    kCAMediaTimingFunctionDefault 默认值(慢进慢出)

    • fillMode:视图在非Active时的行为
    • removedOnCompletion:动画执行完毕后是否从图层上移除,默认为YES(视图会恢复到动画前的状态),可设置为NO(图层保持动画执行后的状态,前提是fillMode设置为kCAFillModeForwards)
    • beginTime:动画延迟执行时间(通过CACurrentMediaTime() + your time 设置)
    • delegate:代理

    代理方法如下:
    func animationDidStart(_ anim: CAAnimation) //动画开始
    func animationDidStop(_ anim: CAAnimation, finished flag: Bool) //动画结束

    相关文章

      网友评论

        本文标题:iOS复习-核心动画

        本文链接:https://www.haomeiwen.com/subject/mllrqftx.html