如何在iOS中更改抽奖中的动画颜色?

时间:2019-10-09 10:45:20

标签: ios swift lottie lottie-ios

我正在使用Lottie框架从json文件中加载动画类型指示符。我想更改指示器颜色的动画。我不想更改json文件的颜色。要以编程方式更改动画视图的颜色。

例如:(。。。。)->键入指示器(想要更改点的颜色)

预先感谢

  private let animationView = LOTAnimationView(name: 
  Constants.ImageAssets.typingIndicatorIcon, bundle:Bundle(identifier: Constants.GenericKeys.bundleIdentifier)!)

    private func loadTypingIndicator() {
    animationView.loopAnimation = true
    animationView.translatesAutoresizingMaskIntoConstraints = true
    // *** It's not working 
    animationView.setValue(UIColor.green, forKeypath: "boule.Ellipse 1.Fill 1.Color", atFrame: 0)
    animationView.play()
}

5 个答案:

答案 0 :(得分:3)

@Devan,您好,这可能有所帮助:

let keypath = AnimationKeypath(keys: ["**", "Fill", "**", "Color"])
let colorProvider = ColorValueProvider(UIColor.green.lottieColorValue)
animationView.setValueProvider(colorProvider, keypath: keypath)

答案 1 :(得分:1)

  • 因为动画可能很复杂并且有多种颜色。可以使用LottieEditor通过单击“编辑图层颜色”来编辑“图层”。然后将.JSON保存到文件并添加到XCode项目。
  • 然后在代码中,我所做的只是引用具有所需颜色(取决于UI配色方案)的.JSON文件。因此,我在文件后缀了唯一的颜色。即。 download_black.json,download_blue.json。

答案 2 :(得分:0)

遇到这个问题...如果有人想了解更多,这是有关使用值提供者更改Lottie动画颜色的教程。 https://swiftsenpai.com/development/lottie-value-providers/

答案 3 :(得分:0)

作为选项 - 如果需要类似行为的模板,请使用 view.mask

lottiViewTintView.backgroundColor = tintColor
lottieView = AnimationView(name: "animation_file")
lottieView.bounds = lottiViewTintView.bounds
lottiViewTintView.mask = lottieView

答案 4 :(得分:-1)

您可以在彩票编辑器链接中自定义彩票动画。 Lottie Animation Editor