WatchOS背景色动画

时间:2019-01-06 12:52:18

标签: swift watchkit watch-os

我正在尝试在WatchKit中制作一个简单的动画。 我要闪烁特定的颜色,然后返回黑色背景。一切正常...一次。在第一次眨眼后,将不会发生任何事情。我尝试搜索,但是找不到相关的答案。 我猜想我应该以某种方式重设动画的状态,但找不到任何方法可以实现。

这是我用于动画的代码:

animate(withDuration: 0.2, animations: {
    //set first color
    //mainGroup is a WKInterfaceGroup
    self.mainGroup.setBackgroundColor(color)
    //set back black color
    self.mainGroup.setBackgroundColor(UIColor.black)
})

2 个答案:

答案 0 :(得分:0)

我研究了更多。 WatchKit中的动画功能没有任何选项,这使它变得更难(不能使用自动反转)。解决方案不是完美的,但它或多或少地起作用。您需要先设置所需的“闪烁”颜色,然后将过渡设置为黑色。

self.mainGroup.setBackgroundColor(color)
animate(withDuration: 0.2, animations: {
    self.mainGroup.setBackgroundColor(UIColor.black)
})

答案 1 :(得分:0)

如果您想要更复杂的时间,例如平滑的“ in”动画,您可以使用延迟执行:

animate(withDuration: 0.2) {
    self.mainGroup.setBackgroundColor(color)
} 
DispatchQueue.main.asyncAfter(deadline: DispatchTime.now() + 0.21) {
    animate(withDuration: 0.2) {
        self.mainGroup.setBackgroundColor(.black)
    }
}