美文网首页
iOS动画学习之让圆由小变大

iOS动画学习之让圆由小变大

作者: UniThan | 来源:发表于2016-06-27 18:15 被阅读1288次

    关键函数如下

    func expand() {
      var expandAnimation: CABasicAnimation =     CABasicAnimation(keyPath: "path")
      expandAnimation.fromValue = ovalPathSmall.CGPath
      expandAnimation.toValue = ovalPathLarge.CGPath
      expandAnimation.duration = animationDuration
      expandAnimation.fillMode = kCAFillModeForwards
      expandAnimation.removedOnCompletion = false
      addAnimation(expandAnimation, forKey: nil)
    }
    

    关键代码解释:ovalPathSmall和ovalPathLarge如下:

     var ovalPathSmall: UIBezierPath {
        return UIBezierPath(ovalInRect: CGRect(x: 50.0, y: 50.0, width: 0.0, height: 0.0))
    }
    
    var ovalPathLarge: UIBezierPath {
        return UIBezierPath(ovalInRect: CGRect(x: 2.5, y: 2.5, width: 95.0, height: 95.0))
    }
    

    ovalPathSmall其实画的是一个点,ovalPathLarge才是变大后的这个原(直径95),圆心其实就位于ovalPathSmall所画的这个点上

    expandAnimation.fillMode = kCAFillModeForwards
    expandAnimation.removedOnCompletion = false
    

    确保动画完成以后确保圆为变化后的大圆图形。
    简单来说,动画就是给定变化前后的图形,变化交给系统来实现。

    相关文章

      网友评论

          本文标题:iOS动画学习之让圆由小变大

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