이번에는 스택들중에 Lazy
V랑 H차이일 뿐 내용은 같으니 한가지로 설명~
LazyV(H)Stack
struct LazyVStack<Content> where Content : View
스택으로 쌓이는 하위 뷰들을 필요한 만큼 추가할 수 있는 뷰
스택뷰가 화면에 렌더링 할 때까지 항목을 생성하지 않기 때문에 lazy이다.
즉, 무언가가 주어지지 않는다면 Stack을 구성하지 않고 있다는 뜻이다.
ScrollView {
LazyVStack(alignment: .leading) {
ForEach(1...100, id: \.self) {
Text("Row \($0)")
}
}
}
이렇게 하면 안에 Text 가 내용이 있기 전까지는 구성하지 않다가, 내용이 들어오면 구성한다는 뜻
일반 스택이랑 비교를 하면..
일반 VStack은 모든 자식을 즉시 렌더링 하는 반면, LazyVStack은 데이터가 많아도 스크롤 성능을 유지하며,
즉시 사용할 수 없는 요소는 필요할 때까지 로드하지 않는다.
VStack은 최적화가 없고, LazyVStack은 테이블뷰와 마찬가지로 뷰를 recycling할 가능성이 높다.
기본적으로 LazyVStack의 너비가 유연하다. 즉, LazyVStack은 자동으로 여유 공간을 차지하지만 일반 VStack에서는 수행하지 않는다.
기본사용법은 일반적인 Stack과 거의 동일
LazyVStack은 ScrollView 내에서 주로 사용되며, 많은 양의 데이터를 효율적으로 나열할 수 있다.
LazyVStack은 많은 양의 데이터를 표시할 때 매우 유용하며, 지연로딩 덕분에 메모리 사용을 줄일 수 있다.
특히 사진갤러리나 채팅 애플리케이션처럼 많은 항목을 렌더링해야 하는 경우 유리하다.
생각보다 LazyStack에 대해서 쓸게 없는거 같은데
지금 프로젝트에 이걸 쓴 이유가 List를 커스텀하기 화나서,,ㅋ
다음에 List랑 비교글을 한번 써봐야겠음
'iOS 관련 공부 > SwiftUI' 카테고리의 다른 글
SwiftData 기본적인 내용..이라고 해야할까..? (0) | 2025.04.18 |
---|---|
네비게이션바 라지타이틀 없애버리기... (0) | 2025.04.17 |
SwiftUI - stack views (0) | 2025.04.16 |
SwiftUI - Navigation (0) | 2025.04.16 |
SwiftUI - Environment, Property Wrapper (0) | 2025.04.15 |