[iOS] ProgressView

z-wook·2023년 9월 3일
0
post-thumbnail

ProgressView란?

ProgressView는 작업의 진행 상태를 시각적으로 나타내기 위해 사용되는 UI 요소입니다.
주로 작업의 진행 상태를 표시하거나 다운로드, 업로드, 파일 복사 등과 같은 장기 실행되는 작업의 진행 상황을 사용자에게 시각적으로 표시하는 데 사용됩니다.

아래의 코드를 통해 이미지를 받아오는 동안 ProgressView를 업데이트하는 방법에 대해 알아보겠습니다.

코드

private lazy var progressView: UIProgressView = {
	let view = UIProgressView()
	view.trackTintColor = .lightGray
	view.progressTintColor = .systemBlue
	view.progress = 0
	view.snp.makeConstraints {
		$0.height.equalTo(10)
	}
	return view
    
func donwnLoadImage(imageUrl: ImageURL) async -> Data {
	let dataTask = AF.request(imageUrl.url, method: .get)
		.downloadProgress(closure: { progress in
			self.progressView.progress = Float(progress.fractionCompleted)
		})
		.serializingData()
        
	switch await dataTask.result {
	case .success(let data):
		return data
	case .failure(let error):
		print(error.localizedDescription)
	}
	return Data()
}

Alamofire의 downloadProgress을 사용하면 파일 다운로드나 업로드와 같은 HTTP 작업의 진행률을 모니터링하고 표시할 수 있습니다.
따라서 downloadProgress을 사용해서 HTTP 다운로드 요청의 진행률이 업데이트될 때마다 progressView의 진행률을 업데이트합니다.
이렇게 하면 사용자에게 작업의 진행 상태를 시각적으로 표시할 수 있으며, 다운로드가 얼마나 완료되었는지를 실시간으로 확인할 수 있습니다.

profile
🍎 iOS Developer

0개의 댓글