У меня проблема с "деактивацией" анимации.
Я хочу полностью остановить анимацию и отключить ее, пока я не вызову функцию startBusy () снова. Даже когда я устанавливаю opaticy на 0, у меня все еще остается одна точка.
Нужно ли мне удалять весь слой из области просмотра и добавлять его снова, если я хочу снова aniamte? Что будет правильным заданием?
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
}
}