서버로부터 이미지를 다운받는 방법으로는 AsyncImage가 대표적으로 있습니다.
AsyncImage 구조체는 서버 주소로부터 서버에 저장된 이미지를 다운 받을 수 있는 방법입니다. 이 구조체는 URLSession 인스턴스를 사용하여 URL로부터 이미지를 가져오고 출력합니다. 다음은 서버로부터 이미지를 가져오는 예시 코드입니다.
이미지를 가져오기 전까지 view는 표준 placeholder로 임시로 공간을 나타냅니다. 이후 성공적으로 이미지를 가져온다면 view는 이미지를 뷰에 업데이트합니다. 위에 예시 코드를 실행시키면 아래처럼 바뀌게 되는데 placeholder 보다 서버로부터 가져온 이미지가 더 작을 수 있습니다.
또한 init(url:scale:content:placeholder:)를 사용하여 커스텀 placeholder를 명시할 수 있습니다. 이 초기화를 사용하여 content 파라미터를 여러개의 이미지를 가져올 수 있도록 할 수 있습니다. 예를들어 modifier를 추가하여 가져온 이미지의 크기를 조절할수도 있습니다.
이 예시에서는 SwiftUI는 ProgressView를 처음에 보여주고 다음으로 크기가 조절된 이미지를 보여줍니다.
로딩하는동안 더 많은 컨트롤을 하려면 init(url:scale:transaction:content:) 초기화를 사용하여 로딩 작업의 상태를 나타내기 위해 AsyncImagePhase를 받는 콘텐츠 closure를 사용합니다. 그렇게하여 현재 단계에 적합한 뷰를 반환합니다
'SwiftUI' 카테고리의 다른 글
Published (0) | 2023.12.15 |
---|---|
Chart Proxy (0) | 2023.12.14 |
Task Group (withTaskGroup, withThrowingGroup) (0) | 2023.12.13 |
LazyV(H)Grid (0) | 2023.12.13 |
DisclosureGroup (0) | 2023.12.13 |