Я создал круговое представление о прогрессе, используя CAShapeLayer, имея значение strokeEnd равным 0,3, и модифицировав strokeEnd, используя CABasicAnimation.После окончания анимации обводка становится равной 1, что является полным кругом, и это нормально, но если я нажимаю viewcontroller или pop viewcontroller, он возвращается в исходное состояние круга.Как мне оставить обводку, оставшуюся как 1, когда представление всплывающее или толчок?
https://giphy.com/gifs/JoyiYVXdiGO1drm1zJ
func animation() {
let basicanimation = CABasicAnimation(keyPath: "transform.rotation")
basicanimation.toValue = 2*CGFloat.pi
basicanimation.fromValue = 0
basicanimation.duration = 1
basicanimation.repeatCount = Float.infinity
basicanimation.fillMode = CAMediaTimingFillMode.forwards
basicanimation.isRemovedOnCompletion = false
//basicanimation.isAdditive = true
tracklayer2.add(basicanimation, forKey: "basic")
}
func startanimation() {
if connected {
self.cir.startstoplabel.text = "Start"
self.connected = false
self.cir.tracklayer2.isHidden = true
self.cir.tracklayer.isHidden = false
self.cir.tracklayer3.isHidden = true
}
else {
tapgesture.isEnabled = false
cir.startstoplabel.text = "Connecting..."
cir.tracklayer2.strokeEnd = 0.3
cir.tracklayer3.isHidden = true
self.cir.shapeLayer.isHidden = true
self.cir.tracklayer2.isHidden = false
self.cir.tracklayer.isHidden = true
self.cir.animation()
let url = URL(string: "")
var request = URLRequest(url: url!)
let auth = Auth.auth().currentUser?.uid
request.addValue(auth!, forHTTPHeaderField: "")
request.addValue("application/json",forHTTPHeaderField: "Content-Type")
request.httpMethod = "POST"
let parameter:[String:Int] = ["":1]
let jsondata = try? JSONSerialization.data(withJSONObject: parameter)
request.httpBody = jsondata
let task = URLSession.shared.dataTask(with: request) { (data, response, error) in
if let error = error{
print(error)
return
}
let json = try? JSONSerialization.jsonObject(with: data!, options: []) as! [String:Any]
print(json)
self.connected = true
DispatchQueue.main.async {
self.cir.startstoplabel.font = UIFont(name: "HelveticaNeue", size: 28)
self.cir.tracklayer3.removeAllAnimations()
self.cir.tracklayer2.strokeEnd = 1
self.cir.tracklayer2.isHidden = true
self.cir.tracklayer3.isHidden = false
self.cir.shapeLayer.isHidden = false
self.tapgesture.isEnabled = true
}
}
task.resume()
}
}