SwiftUI 스크롤 뷰 컴포넌트
2021년 8월 14일 수정
≡ 목차 (Table of Contents)
ScrollView
기본적으로 LazyVStack
을 같이 이용하는 형태가 있다.
ScrollView(.vertical, showsIndicators: false) { LazyVStack(alignment: .leading, spacing: 16) { View1() View2() ... } }
이렇게 하면 내용물(content)의 크기에 맞게 vertical stack의 크기가 잡히기 때문에 스크롤이 깔끔하게 된다.
리스트(List) 대신 쓸 경우라면 ForEach
를 이용하면 쉽게 구현되는 편이다. 아래의 예는 items
라는 컬렉션의 내용을 각각 MyView
라는 뷰로 렌더링하는 예제다.
ScrollView(.vertical, showsIndicators: false) { LazyVStack(alignment: .leading, spacing: 16) { ForEach(items, id: \.self) { MyView($0) } } }
당연하게도 리스트에 비해 퍼포먼스에 불리한 점이 있을 수 있으므로 내용이 많으면 List를 사용하자.