您的位置:首页 > 移动开发 > IOS开发

ios CAAnimation初窥

2015-10-12 15:13 489 查看
在IOS中制作简单的动画可以使用CAAnimation这个类进行制作,基本的使用方法,定义CABsciAnimation这个基础的动画类,设置动画类型,transform.rotation(旋转)、ansform.scale(缩放) 、opacity透明,CAAnimationGroup将所有的动画组合使用,设置动画开始位置,执行时间beginTime和动画的时长:duration.
let duration: CFTimeInterval = 1
let beginTime = CACurrentMediaTime()

// Rotate animation
let rotateAnimation  = CABasicAnimation(keyPath: "transform.rotation.z")
rotateAnimation.fromValue = NSNumber(int: 0)
rotateAnimation.toValue = NSNumber(double: M_PI * 2)
rotateAnimation.duration = duration;

// Scale animation
let scaleAnimation = CAKeyframeAnimation(keyPath: "transform.scale")
scaleAnimation.keyTimes = [0]
scaleAnimation.values = [1, 2]
scaleAnimation.duration = 0

// Opacity animation
let opacityAnimaton = CAKeyframeAnimation(keyPath: "opacity")
opacityAnimaton.keyTimes = [0, 0.5]
opacityAnimaton.values = [1, 0]
opacityAnimaton.duration = duration

// Scale animation
let scaleAnimation2 = CAKeyframeAnimation(keyPath: "transform.scale")
scaleAnimation2.keyTimes = [0, 0.5]
scaleAnimation2.values = [2, 0]
scaleAnimation2.duration = duration

let animation = CAAnimationGroup()

animation.animations = [rotateAnimation, scaleAnimation, opacityAnimaton, scaleAnimation2]
animation.timingFunction = CAMediaTimingFunction(name: kCAMediaTimingFunctionLinear)
animation.duration = duration
animation.repeatCount = HUGE
animation.removedOnCompletion = false
animation.beginTime = beginTime
timeLabel.layer.addAnimation(animation, forKey: "animation")
self.layer.addSublayer(timeLabel.layer)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: