[swift] 킹피셔를 사용하여 이미지 다운로드 중에 썸네일 이미지를 표시하는 방법은?
  1. 먼저 Kingfisher 라이브러리를 프로젝트에 추가합니다. Cocoapods를 사용하는 경우 Podfile에 다음 줄을 추가하고 pod install을 실행합니다.

    pod 'Kingfisher'
    
  2. 다운로드 할 원본 이미지의 URL을 가져옵니다.

    let imageUrl = URL(string: "https://example.com/image.jpg")
    
  3. Kingfisher를 사용하여 이미지를 다운로드하고 표시하는 썸네일 이미지뷰를 만듭니다.

    import Kingfisher
       
    let thumbnailImageView = UIImageView()
       
    thumbnailImageView.kf.setImage(
        with: imageUrl,
        options: [
            .downloader(ImageDownloader(name: "thumbnail")),
            .processor(DownsamplingImageProcessor(size: CGSize(width: 100, height: 100))),
            .cacheSerializer(DefaultCacheSerializer.default)
        ],
        completionHandler: { result in
            switch result {
            case .success(let value):
                print("Thumbnail image downloaded successfully: \(value.source.url?.absoluteString ?? "")")
            case .failure(let error):
                print("Failed to download thumbnail image: \(error.localizedDescription)")
            }
        }
    )
    

    이 코드에서 thumbnailImageView는 다운로드 할 썸네일 이미지를 표시하는 UIImageView입니다. imageUrl은 다운로드 할 원본 이미지의 URL입니다. 코드는 Kingfisher를 사용하여 이미지를 비동기적으로 다운로드하고 표시하며, 썸네일 생성을 위해 DownsamplingImageProcessor를 사용합니다. 이 코드에서는 “thumbnail”이라는 이름의 ImageDownloader를 사용하여 다운로드합니다.

위의 코드를 사용하면 이미지가 다운로드되는 동안 임시로 생성 된 썸네일 이미지가 표시될 것입니다. 다운로드가 완료되면 썸네일 이미지가 제거되고 원본 이미지가 표시됩니다.

Kingfisher의 공식 문서에서 더 많은 사용 예제와 자세한 내용을 찾을 수 있습니다: Kingfisher GitHub Repository