circlecircle
원형
circlecircle
전체 방문자
오늘
어제
  • 분류 전체보기 (11)
    • Flutter (2)
      • Firebase (1)
    • iOS (9)
      • swiftUI (6)
      • UIKit (0)
      • Firebase (3)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • SwiftUI
  • Firebase
  • AppStorage
  • propertyWrapper
  • ObservableObject
  • storage
  • ios
  • EnvironmentObject
  • StateObject
  • SDWebImage
  • userdefaults
  • Kingfisher
  • Cloud FireStore
  • Stack
  • SPM
  • Combine
  • 다중이미지
  • LazyVStack

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
circlecircle

원형

iOS/swiftUI

[iOS/SwiftUI] V,HStack 과 LazyVStack 차이

2023. 3. 24. 18:32

SwiftUI의 LazyVStack은 화면에 보이지 않는 컨텐츠를 로드하지 않고 효율적으로 스크롤 가능한 세로 뷰를 구현하는 데 사용된다.

 

VStack과 비슷하지만, LazyVStack은 필요한 경우에만 뷰를 생성하기 때문에 매우 큰 데이터 세트를 처리하는 데 유용하다.

즉, LazyVStack은 매우 큰 데이터 세트가있는 경우 성능 문제를 해결하기 위해 사용된다.

 

이 컴포넌트는 데이터가 화면에 보이는 경우에만 필요한 뷰를 생성하기 때문에, 화면에 보이지 않는 데이터는 로드되지 않아 성능이 향상된다. 또한, 스크롤 할 때마다 새로운 셀을 생성하기 때문에 메모리를 효율적으로 사용할 수 있다.

 

1...10000개의 데이터를 불러올때의 View를 그리는 시간 차이 예시이다.

왼쪽 VStack은 10000개의 데이터를 한번에 그리느라 시간과 메모리를 약 5배 더 사용한다.

반면 오른쪽 LazyVStack은 37개의 데이터를 불러와서 View를 그리고 Scroll시 추가해서 View를 그려준다.

struct LazyVStackPage: View {
    var body: some View {
        ScrollView(){
            LazyVStack(alignment: .center){
                ForEach(1...10000, id: \.self){
                    Text("Row\($0)")
                }
            }
            
        }
    }
}

 

VStack, LazyVStack

 

'iOS > swiftUI' 카테고리의 다른 글

[SwiftUI] AppleMusic(MusicKit) 사용법(MVVM 곁들인)  (0) 2024.03.16
[SwiftUI] 키보드 focus, 클릭시 사라지기, View가림현상 간단 해결방법  (0) 2023.03.24
[SwiftUI] 이미지캐싱 Kingfisher SDWebImage 차이 & 사용법  (0) 2023.03.10
[SwiftUI] UserDefaults & @AppStorage를 활용한 예제  (0) 2023.02.12
[SwiftUI] Property Wrapper(@ObservedObject, @StateObject, @Environment) 프로퍼티 래퍼  (0) 2023.01.15
    'iOS/swiftUI' 카테고리의 다른 글
    • [SwiftUI] AppleMusic(MusicKit) 사용법(MVVM 곁들인)
    • [SwiftUI] 키보드 focus, 클릭시 사라지기, View가림현상 간단 해결방법
    • [SwiftUI] 이미지캐싱 Kingfisher SDWebImage 차이 & 사용법
    • [SwiftUI] UserDefaults & @AppStorage를 활용한 예제
    circlecircle
    circlecircle

    티스토리툴바