Я пытаюсь создать индикатор прогресса, который идет от 0% до 100%.Когда прогресс достигает 100%, я бы хотел, чтобы он уменьшился с процента до изображения, такого как галочка.Я устанавливаю этот индикатор выполнения как CAShapeLayer, и внутри него я хотел бы, чтобы изображение появилось после того, как оно достигнет 100. Я вижу эту анимацию, выполненную в различных приложениях, и мне интересно, возможно ли это сделать в Xcode.Я пытался сделать это путем преобразования изображения в CAShapeLayer, но это не удается из-за ошибки компилятора:
Не удается преобразовать значение типа 'UIImage?'к ожидаемому типу аргумента 'String'
Я использовал приведенный ниже код, но он показывает только процент загрузки.это возможно сделать?
private func beginDownloadingFile() {
print("Attempting to download file")
shapeLayer.strokeEnd = 0
let configuration = URLSessionConfiguration.default
let operationQueue = OperationQueue()
let urlSession = URLSession(configuration: configuration, delegate: self, delegateQueue: operationQueue)
guard let url = URL(string: urlString) else { return }
let downloadTask = urlSession.downloadTask(with: url)
downloadTask.resume()
}
func urlSession(_ session: URLSession, downloadTask: URLSessionDownloadTask, didWriteData bytesWritten: Int64, totalBytesWritten: Int64, totalBytesExpectedToWrite: Int64) {
let percentage = CGFloat(totalBytesWritten) / CGFloat(totalBytesExpectedToWrite)
DispatchQueue.main.async {
self.percentageLabel.text = "\(Int(percentage * 100))%"
self.shapeLayer.strokeEnd = percentage
AudioServicesPlaySystemSound(SystemSoundID(kSystemSoundID_Vibrate))
}
print(percentage)
}
func urlSession(_ session: URLSession, downloadTask: URLSessionDownloadTask, didFinishDownloadingTo location: URL) {
print("Finished downloading file")
}
Спасибо за объяснение того, может ли это быть выполнено заранее.