CAReplicatorLayer остановится и исчезнет?
У меня проблема с "отключением" анимации.
Я хочу полностью остановить анимацию и исчезнуть, пока я снова не вызову функцию startBusy(). Даже когда я установил opaticy на 0, у меня осталась одна точка.
Должен ли я удалить весь слой из поля просмотра и добавить его снова, если я хочу снова выполнить анимацию? Какая задача была бы правильной?
class BusyAnimation: CALayer {
var segmentCount = 10
var size = CGRect(x: 0, y: 0, width: 50, height: 50)
let replicator = CAReplicatorLayer()
let circle = CALayer()
func startBusy(){
replicator.frame = size
replicator.instanceCount = segmentCount
replicator.instanceDelay = 2/CFTimeInterval(segmentCount)
let angle = CGFloat.pi * 2 / CGFloat(segmentCount)
replicator.instanceTransform = CATransform3DMakeRotation(angle, 0, 0, 1)
replicator.speed = 1
replicator.opacity = 1
replicator.repeatCount = Float.infinity
circle.frame = CGRect(x: 0, y: 0, width: 5, height: 5)
circle.cornerRadius = 2.5
circle.backgroundColor = UIColor.gray.cgColor
circle.opacity = 1
circle.speed = 1
let fade = CABasicAnimation(keyPath: "opacity")
fade.fromValue = 1
fade.toValue = 0
fade.duration = 2
fade.repeatCount = 1000
circle.add(fade, forKey: "fade")
replicator.addSublayer(circle)
self.addSublayer(replicator)
}
func stopBusy(){
replicator.opacity = 0
replicator.speed = 0
circle.opacity = 0
circle.speed = 0
}
}