У меня очень простая анимация, поэтому, естественно, я стараюсь избегать последовательностей изображений и SpriteKit.
Я просто установил фон WKInterfaceGroup на зеленый. Я хочу, чтобы он постепенно увеличивал и уменьшал альфа от 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)
Но я не использую изображения.
Конечно, я мог бы использовать изображение зеленого круга и изображение черного круга, но это кажется таким ненужным и смешным.
Попытка сделать что-то подобное, но на самом деле это не повторится, и мне нужно fadein + 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)
}
}
}