URL Image 불러오기(without Library)

kyle Kim·2022년 2월 27일
0

iOS개발

목록 보기
4/22

비동기적으로 URL을 불러오지 않으면 이미지가 불러올 때까지 화면이 멈춰있을것이다.
그래서 비동기적으로 image를 불러와야한다. Library를 쓰면 아주 간단하지만 혹시라도 쓰기 힘든 상황일때 쓰기 좋게 Extension화해서 사용하면 된다.

extension UIImageView {
    func imageFrom(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
                    }
                }
            }
        }
    }
}

DispatchQueue를 사용해서 Thread 별로 Task를 동작하게 할 수 있다.
1. '.global'을 사용해서 우선순위대로 동시에 작업해주는데 여기서는 default를 사용해주면 된다.
2. '.main'을 사용해서 UI를 업데이트 해줌으로써 마무리 해준다.

실행해보면 이미지 이외의 부분은 표시되고 이미지는 로딩 속도에 따라 나타나게 된다.

profile
가고일(gagoil)의 개발일지

0개의 댓글