我试图动画一个图层无限期地闪烁(淡入淡出,直到isBlinking属性切换为false),我的尝试如下,但它似乎没有正常工作,我可以观察一下每两次眨眼都会出现故障。当属性设置为false时,我还希望图层淡入为完全不透明,这样就不会出现任何剧烈的突然不透明度变化,但由于某些原因,我的代码也无法正常工作。
var isBlinking: Bool = false {
didSet {
if !isBlinking {
layer.removeAllAnimations()
let fadeIn = CABasicAnimation(keyPath: "opacity")
fadeIn.toValue = 1
fadeIn.duration = 1
layer.addAnimation(fadeIn, forKey: nil)
return
}
let fadeOut = CABasicAnimation(keyPath: "opacity")
fadeOut.fromValue = 1
fadeOut.toValue = 0.1
fadeOut.duration = 1
let fadeIn = CABasicAnimation(keyPath: "opacity")
fadeIn.fromValue = 0.1
fadeIn.toValue = 1
fadeIn.duration = 1
fadeIn.beginTime = 1
let group = CAAnimationGroup()
group.duration = 2
group.repeatCount = Float.infinity
group.animations = [fadeOut, fadeIn]
layer.addAnimation(group, forKey: nil)
}
}
我很感激swift或obj-c中的任何建议或输入。谢谢!
答案 0 :(得分:0)
你的fromValues和toValues需要是NSNumber
fadeIn.fromValue = NSNumber(float: 0.1)
fadeIn.toValue = NSNumber(float: 1.0)