반응형
[iOS/Swift] URL 이미지 설정하기
안녕하세요. 개발하는 정주입니다.
오늘은 URL 이미지 설정하는 방법에 대해 포스팅하려고 합니다.
안드로이드에서는 Glide 라이브러리를 사용했지만 iOS에서는 기본 제공되는 자료형, 함수로 처리가 가능합니다.
URL 이미지 설정하기
코드를 먼저 보겠습니다.
let url = URL(string: url) //입력받은 url string을 URL로 변경
//main thread에서 load할 경우 URL 로딩이 길면 화면이 멈춘다.
//이를 방지하기 위해 다른 thread에서 처리함.
DispatchQueue.global().async { [weak self] in
if let data = try? Data(contentsOf: url!) {
if let image = UIImage(data: data) {
//UI 변경 작업은 main thread에서 해야함.
DispatchQueue.main.async {
self?.photoImageView.image = image
}
}
}
}
생각보다 복잡한 코드입니다만 내용은 그리 어렵지 않습니다.
먼저 String으로 입력받은 url로 URL을 생성합니다.
이제 이 URL로 다운로드를 해야 하는데요. 이 과정이 오래 걸릴 경우가 있습니다.
main thread에서 실행하면 이 경우에 화면이 멈추기 때문에 다른 thread에서 동작을 하게 합니다.
다운로드가 완료되면 이 이미지를 main thread에서 ImageView에 설정합니다.
마무리 잡담
코드는 길지만 내용은 쉬운 URL로 이미지 설정하기 끝입니다.
감사합니다!
아직은 초보 개발자입니다.
더 효율적인 코드 훈수 환영합니다!
공감과 댓글 부탁드립니다.
반응형