구현 화면
오늘은 SwiftUI로 아래 화면을 구현해보려고 하는데요. 그 과정에 기록하고자 글을 남겨봅니다.
화면 구현
리스트 구현
위와 같은 화면을 구성하기 위해 SwiftUI의 List를 처음으로 사용해 보겠습니다.
List는 UIKit에서 TableView와 CollectionView의 일부 개념이 합처진 개념으로 리스트로 이루어진 뷰를 그릴 때 사용하는 SwiftUI의 뷰 중 하나입니다.
그래서 아래 사진과 같이 그리려는 뷰 계층의 최상단 뷰를 List로 구성해주었습니다.
섹션 나누기
이제 그 다음 할 일은 아래 사진처럼 각 항목들을 섹션별로 분류하는 건인데요.
이 작업은 SwiftUI의 Section이라는 뷰를 활용하면 List 뷰 내부에서 섹션별로 나누어 줄 수 있습니다.
따라서 아래 사진과 같이 List 뷰 내부에서 각 섹션을 나누어 주었습니다.
스크롤 뷰 구현
다음은 스크롤뷰 구현입니다. 정확히는 아래 보시는 것처럼 섹션별로 가로 스크롤 뷰를 적용하는 건데요.
자 그럼 시작해보겠습니다.
위에서 언급했던 것처럼 섹션별로 가로 스크롤이 가능하도록 구현할 것이기 때문에 스크롤 기능이 내재되어 있는 ScrollView를 활용하였는데요.
ScrollView는 기본적으로 스크롤 방향이 수직 스크롤이지만 정의시 스크롤 방향을 인자로 지정해줄 수 있습니다.
저는 가로 스크롤을 사용할 예정이라 .horizontal을 적용해 주었습니다.
그 다음 ForEach를 이용하여 각 화면 요소들을 나열해 주고,
각 요소 클릭 시, 상세 화면으로 이동시키는 기능 구현을 위해 ForEach의 각 요소들을 NavigationLink으로 감싸주었습니다.
완성된 화면
완성된 화면은 다음과 같습니다.
여기까지 읽어주셔서 정말 감사합니다~
참고 사이트
https://developer.apple.com/documentation/swiftui/list (애플 공식 문서 - List)
https://huniroom.tistory.com/entry/SwiftUI-List-Header-Footer-%EC%B6%94%EA%B0%80%ED%95%98%EA%B8%B0 (List Section 구현 참고)
https://seons-dev.tistory.com/entry/ScrollView (ScrollView 구현 참고)
'TIL' 카테고리의 다른 글
[TIL] 숫자 타입 소수점 나타내기(feat. 디테일 설명) (0) | 2024.06.07 |
---|---|
[TIL] ForEach id 중복으로 인한 오류 해결 과정 (0) | 2024.06.07 |
[TIL] Moya 첫 적용기(feat. 사용법) (0) | 2024.06.04 |
[TIL] MVI 패턴 (0) | 2024.06.04 |
[TIL] Realm-Swift 라이브러리 SPM Build 오류 대응(Privacy Manifest) (0) | 2024.05.19 |