Objective c 具有fadeIn/fadeOut Cabasicanization的闪烁效果

Objective c 具有fadeIn/fadeOut Cabasicanization的闪烁效果,objective-c,swift,calayer,cabasicanimation,caanimation,Objective C,Swift,Calayer,Cabasicanimation,Caanimation,我试图将一个层设置为无限闪烁(淡入淡出,直到isBlinking属性切换为false),我的尝试如下,但它似乎无法正常工作,我可以观察到每两次闪烁都会出现一点小故障。当属性设置为false时,我还希望层淡入完全不透明,这样就不会出现任何突然的不透明度变化,但出于某种原因,我的代码也无法做到这一点 var isBlinking: Bool = false { didSet { if !isBlinking { layer.removeAllAnima

我试图将一个层设置为无限闪烁(淡入淡出,直到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中提供任何建议或意见,我将不胜感激。谢谢

对于fromValues和toValues,需要使用NSNumber

    fadeIn.fromValue = NSNumber(float: 0.1)
    fadeIn.toValue = NSNumber(float: 1.0)