【问题标题】:Blinking effect with fadeIn/fadeOut CABasicAnimation闪烁效果与淡入/淡出 CABasicAnimation
【发布时间】:2016-01-30 17:52:14
【问题描述】:

我正在尝试为图层设置动画以无限期闪烁(淡入淡出,直到 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 的建议或意见。谢谢!

【问题讨论】:

    标签: objective-c swift calayer cabasicanimation caanimation


    【解决方案1】:

    你的 fromValues 和 toValues 需要是 NSNumber

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-06-07
      • 1970-01-01
      • 2019-07-31
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多