[swift] 킹피셔를 사용하여 이미지 다운로드 중에 프로그레스 바를 표시하는 방법은?
UIImageView
를 생성하고 이미지를 표시할 위치에 추가합니다.let imageView = UIImageView(frame: CGRect(x: 0, y: 0, width: 200, height: 200)) view.addSubview(imageView)
UIProgressView
를 생성하고 프로그레스 바를 표시할 위치에 추가합니다.let progressView = UIProgressView(frame: CGRect(x: 0, y: 0, width: 200, height: 20)) view.addSubview(progressView)
- 킹피셔를 사용하여 이미지를 다운로드하면서 프로그레스 바를 업데이트하는 코드를 작성합니다. ```swift import Kingfisher
let url = URL(string: “https://example.com/image.jpg”) imageView.kf.indicatorType = .custom(progressView) // 프로그레스 바 사용 설정
// 이미지 다운로드 진행 상황을 업데이트하는 클로저를 설정합니다. imageView.kf.setImage(with: url, options: [.onProgress { receivedSize, totalSize in let progress = Float(receivedSize) / Float(totalSize) // 진행 상황 계산 progressView.progress = progress // 프로그레스 바 업데이트 }], progressBlock: nil, completionHandler: nil) ```
위 코드는 imageView
에 url
에서 지정한 이미지를 다운로드하면서, progressView
에 프로그레스 바를 표시합니다. onProgress
클로저에서는 다운로드 진행 상황을 계산하여 프로그레스 바를 업데이트합니다.
참고로, 적절한 이미지 크기를 사용하면 이미지 다운로드 속도를 향상시킬 수 있습니다. 또한, kf.indicatorType
를 사용하여 프로그레스 바 대신 다른 형태의 로딩 인디케이터를 사용할 수도 있습니다.
더 자세한 내용은 킹피셔 공식 문서를 참고하시기 바랍니다.