我有一个非常简单的动画,所以自然而然地我试图避免图像序列和SpriteKit。
我只是将WKInterfaceGroup背景设置为绿色。我希望它反复淡入和淡出alpha 1.0到0.2和0.2到1.0。称其为脉冲或任何您想要的。
我可以使用以下方法淡出它:
self.animate(withDuration: 1.0) { row.circleBG.setAlpha(0.2) }
。
但是如何将其淡入并无限重复整个动画?
即使我创建了单独的淡出和淡入功能,也无论如何都只会执行第一个调用,因此也不起作用。即使它奏效,也不会重复。
我能找到的唯一重复方法需要这样的图像序列范围。 row.circleBG.startAnimatingWithImages(in: (need image range), duration: 1.0, repeatCount: 100)
但我没有使用图像。
我当然可以使用绿色圆圈图像和黑色圆圈图像,但这似乎是不必要的并且很笨拙。
尝试过类似的操作,但实际上不会重复,因此我需要使用fadingin + fadeout才能作为一个动画一起重复。脉冲淡入/淡出并重复。
我也只能访问row.ringStatus.
购买创建for (index, value) in
。我想避免这段代码重复。
var pulseTimer: Timer!
pulseTimer = Timer.scheduledTimer(timeInterval: 5, target: self, selector: #selector(pulse), userInfo: nil, repeats: true)
@objc func pulse() {
for (index, value) in self.messageObject.enumerated() {
guard let row = messagesTable.rowController(at: index) as? MessageListRowController else { continue }
DispatchQueue.main.async {
row.ringStatus.setBackgroundColor(.green)
row.ringStatus.setAlpha(1.0)
row.ringStatus.setAlpha(0.2)
}
}
}