我在CALayer
中添加了UIView
。
它有一个fillColor。
它也有一些宽度。
我希望该图层的宽度从零扩展到实际宽度,CABasicAnimation
从左到右。
怎么做?
答案 0 :(得分:2)
尝试动画图层的边界:
let a = CALayer()
a.bounds = CGRect(x: 0, y: 0, width: 100, height: 40)
a.position = CGPoint(x: 20, y: 20)
a.anchorPoint = CGPoint(x: 0, y: 0)
view.layer.addSublayer(a)
let anim = CABasicAnimation(keyPath: "bounds")
anim.duration = 2
anim.fromValue = NSValue(CGRect: CGRect(x: 0, y: 0, width: 0, height: 30))
anim.toValue = NSValue(CGRect: CGRect(x: 0, y: 0, width: 100, height: 30))
a.addAnimation(anim, forKey: "anim")
这对我有用。只是不要忘记设置achor点。
答案 1 :(得分:0)
回答Swift 3。 为了使图层的宽度从左(不是从中心!)改变到右边,我使用了以下方法:
我有一个名为“layer”的图层,我想将其宽度从0更改为myWidth
layer.position = CGPoint(x: 0, y: 0)
layer.anchorPoint = CGPoint(x: 0, y: 0.5)
let layerAnimation = CABasicAnimation(keyPath: "bounds.size.width")
layerAnimation.duration = 2
layerAnimation.fromValue = 0
layerAnimation.toValue = myWidth
layer.add(layerAnimation, forKey: "anim")