Я определил круг следующим образом:
let progressLayer = CAShapeLayer()
let ring = UIBezierPath(arcCenter: center, radius: 100, startAngle: -CGFloat.pi / 2 , endAngle: 2 * CGFloat.pi , clockwise: true)
progressLayer.path = ring.cgPath
progressLayer.strokeColor = UIColor.green.cgColor
progressLayer.fillColor = UIColor.clear.cgColor
view.layer.addSublayer(progressLayer)
Затем я определил анимацию, которая заполняет границу моего круга цветом и продолжительностью, например:
let basicAnimation = CABasicAnimation(keyPath: "strokeEnd")
basicAnimation.toValue = 1
basicAnimation.duration = 60 //Seconds !
basicAnimation.fillMode = .forwards
progressLayer.add(basicAnimation, forKey: "blablabla")
Что произошло заключается в том, что анимация подходит к концу круга с задержкой в 12 секунд! (Круг заполнен, но осталось 12 секунд) Почему это произошло? Это проблема тригонометрии (startAngle endAngle)? Я не могу понять ...