[SwiftUI] AsyncImage

RudinP·4일 전
0

Study

목록 보기
324/325

이미지를 비동기적으로 다운로드 하는 방법

var body: some View {
        AsyncImage(url: url)
}
  • 메인스레드 블로킹 X
  • 이미지를 다운로드해서 표시하는 뷰
    • UIImage 그 자체가 아님

크기 조정

AsyncImage(url: url) { imageView in
            imageView
                .resizable()
                .scaledToFit()
        } placeholder: {
            //이미지 다운받을 때 표시할 뷰
            ProgressView()
        }

오류 표시

  • phase는 총 3단계(다운로드 완료, 실패, 중)
AsyncImage(url: url) { phase in
            //다운로드 완료, 실패, 중 3단계
            //상태가 바뀔 때마다 클로저가 반복적으로 호출됨
            switch phase {
            case .success(let image):
                image.resizable().scaledToFit()
            case .failure(let error):
                Label("이미지를 다운로드 하지 못했습니다.", systemImage: "x.circle")
            case .empty:
                ProgressView()
            }
        }



profile
iOS 개발자가 되기 위한 스터디룸...

0개의 댓글