iOS/코드조각

[iOS, Swift] 이미지뷰에 이미지 넣기(인터넷 url 주소)

검은참깨두유vm 2023. 2. 28. 00:01
반응형

iOS 16.1, Xcode 14.2, Swift 5, UIKit 환경에서 진행했습니다.

 

 

UIImageView에 image를 넣으려면 아래와 같이하면 이미지를 넣을 수 있다.

imageView.image = UIImage(named: "이미지이름")

 

 

인터넷에서 있는 url 주소로도 imageView에 이미지를 넣을 수 있는데,

Data를 초기화할 때, url 주소를 입력하여 url에 있는 이미지를 data 형식으로 불러온 후

UIImage를 받은 data를 통해 만들고 난 후에 imageView에 이미지를 넣는 방식이다.

DispatchQueue.global().async { [weak self] in
    if let data = try? Data(contentsOf: url) {
        if let image = UIImage(data: data) {
            DispatchQueue.main.async {
                imageView.image = image
            }
        }
    }
}

 

 

Extension을 통해 재활용과 간단한 코드로 구현이 가능하다.

 

Extension

import UIKit

extension UIImageView {
    func load(url: URL) {
        DispatchQueue.global().async { [weak self] in
            if let data = try? Data(contentsOf: url) {
                if let image = UIImage(data: data) {
                    DispatchQueue.main.async {
                        self?.image = image
                    }
                }
            }
        }
    }
}

 

사용방법

imageView.load(url: URL(string: url)!)

 

반응형