단일 열에 배열된 데이터 행을 표시하는 컨테이너로, 선택적으로 하나 이상의 구성원을 선택할 수 있는 기능을 제공한다.
가장 간단하게 LIst를 만드는 방법은 정적으로 만드는 것으로 다음과 같다.
더 일반적으로, 기본 데이터 모음에서 동적으로 목록을 만든다. 다음 예제는 Identifiable을 준수하는 Ocean 유형의 배열에서 간단한 목록을 만드는 방법을 보여준다.
리스트를 선택할 수 있는 기능을 추가하기
리스트에 있는 내용들을 선택할 수 있으려면 선택할 변수에 binding을 부여한다.
목록 데이터의 식별 가능한 단일 인스턴스에 바인딩을 부여한다. ID 유형(UUID)은 단일 선택 목록을 만든다. Set에 바인딩하면 여러 선택을 지원하는 목록이 생성됩니다. 다음 예제는 이전 예제에 다중 선택을 추가하는 방법을 보여준다.
- 집합(Set): 집합은 해시 기반으로 구현되어 있어 요소 검색 및 조회가 일반적으로 매우 효율적입니다. 집합은 고유한 값을 신속하게 확인할 수 있다.
EditButton을 추가함으로 다음처럼 선택할 수 있는 기능이 추가된다
list 를 새로고침하기
list에 있는 내용들을 새로고침하기 위해서는 refreshable(action:) modifier를 사용한다.
다음 예제는 어떻게 리스트를 새로고침하는지 보여준다. 사용자가 상단에서 밑으로 드래드할 때 SwiftUI는 새로고침 컨트롤을 보여주고 명시된 동작을 수행한다. 데이터를 새로고침하기 위해서 await 을 action 클로저 내부에 사용한다. 새로고침 indicator는 await이 완료될때까지 화면에 계속 나타나게 된다.
다차원 리스트도 지원한다
2차원 리스트를 만들기 위해서는 Section 인스턴스 내부에 아이템들을 그룹으로 묶는다. 다음 예는 세계의 바다의 이름을 딴 Section을 만들며, 각 Section에는 그 바다에 붙은 주요 바다의 이름을 딴 TextView가 있다. 이 예제는 또한 예제의 바다 유형의 ID로 식별되는 단일 목록 항목을 선택할 수 있다.
이 예제는 싱글 selection을 사용하기 때문에 사람들은 edit 모드 밖에서도 selection을 만들 수 있다
리스트 스타일 바꾸기
SwiftUI는 플랫폼과 나타나는 보기 유형을 기반으로 목록의 디스플레이 스타일을 선택합니다. listStyle(_:) 수정자를 사용하여 뷰 내의 모든 목록에 다른 ListStyle을 적용할 수 있다. 예를 들어, "다차원 목록 만들기" 주제에 표시된 예제에 .listStyle(.plain)을 추가하면 일반 스타일이 적용되며, 다음 스크린샷이 표시된다
'SwiftUI' 카테고리의 다른 글
Generic Functions <T> (0) | 2023.10.31 |
---|---|
Navigation Toolbar (0) | 2023.10.31 |
Navigation Stack (0) | 2023.10.26 |
Computed Properties (0) | 2023.10.26 |
KeyPath, 키 경로 (0) | 2023.10.25 |