Показывать прогресс с помощью SVProgressHUD в Swift

Как я могу показать прогресс загрузки с помощью SVProgressHUD в Swift? Я реализовал следующий код, но он не показывает прогресса.

SVProgressHUD.show()
    Alamofire.download(
                url,
                method: .get,
                parameters: nil,
                encoding: JSONEncoding.default,
                headers: nil,
                to: destination).downloadProgress(closure: { (progress) in

                    DispatchQueue.main.async {
                        SVProgressHUD.showProgress(Float(progress.fractionCompleted))
                    }
                    print(progress.fractionCompleted)

                }).response(completionHandler: { (DefaultDownloadResponse) in

                    DispatchQueue.main.async {
                        SVProgressHUD.dismiss()
                    }
                })

person Rohitax Rajguru    schedule 12.02.2019    source источник
comment
download Alamofire уже должен работать в основном потоке, поэтому вам не нужны эти DispatchQueue.main.async закрытия.   -  person Robert Dresler    schedule 12.02.2019
comment
Закомментируйте строку SVProgressHUD.dismiss (). Я думаю, ваш сетевой запрос отвечает так быстро, что ваш hud не успевает появиться.   -  person asanli    schedule 12.02.2019


Ответы (2)


Обходной путь - отклонить SVGProgress, когда прогресс достигнет 100% или 1.0.

Также проверьте https://github.com/SVProgressHUD/SVProgressHUD/issues/622? для большего понимания.

person Balogun taofeek    schedule 12.02.2019

Вопрос 2 месяца назад, но я поставлю его здесь, так как это может кому-то помочь. Если у кого-то есть проблема с тем, что SVProgressHUD не показывает прогресс, проверьте его приращение. Он должен находиться в диапазоне от 0 до 1 (поэтому минимально возможный прогресс равен 0, а максимум равен 1), в противном случае показанное изображение будет заполненным кружком, что создаст впечатление, что прогресс не меняется.

person HemOdd    schedule 03.05.2019