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

关键函数如下

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

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

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Core Animation Core Animation,中文翻译为核心动画,它是一组非常强大的动画处理API,...
    45b645c5912e阅读 3,081评论 0 21
  • 概览 在iOS中随处都可以看到绚丽的动画效果,实现这些动画的过程并不复杂,今天将带大家一窥iOS动画全貌。在这里你...
    Yiart阅读 3,904评论 3 34
  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 174,015评论 25 709
  • 讲了动态规划:一道题如何判断用动态规划来解,并且如何解,一共有以下几个要素:动态规划一般可以回答以下三个问题:a)...
    健时总向乱中忙阅读 168评论 0 0
  • 今天是教师节,小到网络朋友圈大到时事政治都是关于对老师热情洋溢的赞美。本来也没想过写关于这个话题,但还是勾起了对往...
    独立行走的鱼阅读 446评论 4 6