본문 바로가기

IOS Swift

[iOS] imageView 이미지 크기대로 동적 사이즈 변경

서버에서 이미지의 크기 or 가로세로 비율이 고정이 아니다.

이미지의 비율대로 imageView 가로 세로 비율을 조정해야 된다.

이럴 때 사용할 수 있습니다.


목차

  1. 방법
  2. 코드

방법

  1. 이미지 url로 이미지 가져오기
  2. 가져온 이미지 size 파악
  3. size 비율대로 imageView 크기 조정

 

코드

간편하게 구현 가능한 Kingfisher라는 라이브러리를 사용해봤습니다.

import UIKit
import Kingfisher

extension UIImageView {

    // 1. url로 이미지 가져오기
    func setImage(with urlString: String, completion: ((CGSize)->())? = nil) {
  
            let url = URL(string: urlString)
          
            self.kf.indicatorType = .activity
            self.kf.setImage(
                with: url,
                options: []) {
                    
            result in
            switch result {
            case .success(let value):

                // 2. 가져온 이미지 size 파악
                completion?(value.image.size)
             
            case .failure(let error):
                print(error)
            }
        }
    }
}

// 3. size 비율대로 imageView 크기 조정
imageView.setImage(with: "String 형식의 url 입력", completion: { imageSize in
  // 여기에서 imageSize로 imageView의 AspectRatio 비율을 변경!
})
반응형