이미지를 비동기적으로 다운로드 하는 방법
var body: some View {
AsyncImage(url: url)
}
AsyncImage(url: url) { imageView in
imageView
.resizable()
.scaledToFit()
} placeholder: {
//이미지 다운받을 때 표시할 뷰
ProgressView()
}
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()
}
}