SwiftUI: OnAppear, OnDisappear

Snack 남관식·2023년 5월 3일
1

SwiftUI

목록 보기
21/35
post-thumbnail
post-custom-banner

OnAppear, OnDisappear

  • 뷰가 나타나거나 사라질 때 입력된 코드를 실행

onAppear

  • 뷰가 화면 상에 나타날 때 입력된 코드를 실행한다.
struct OnAppearStudy: View {
    
    @State var myText: String = "Star Text"
    
    var body: some View {
        Text(myText)
            .font(.largeTitle)
            // 뷰가 나타난 직후 해당 코드 실행
            .onAppear(perform: {
            	// 3초 후 해당 코드 실행
                DispatchQueue.main.asyncAfter(deadline: .now() + 3) {
                    myText = "Next Text"
                }
            })
    }
}
  • LazyVStack으로 화면에 나타난 후에 데이터를 로드하면, 화면에 나타날 때 onAppear내의 코드가 실행된다.
struct OnAppearStudy: View {

    @State var count: Int = 0
    
    var body: some View {
        NavigationView {
            ScrollView {
            	// 화면에 나타날 때 데이터 로드
                LazyVStack {
                    ForEach(0..<20) { _ in
                        RoundedRectangle(cornerRadius: 20)
                            .frame(height: 200)
                            .padding()
                            // 화면에 나타날 때 해당 코드 실행
                            .onAppear {
                                count += 1
                            }
                    }
                }
            }
            .navigationTitle("On Appear \(count)")
        }
    }
}

onDisappear

  • 뷰가 화면 상에서 사라질 때 입력된 코드를 실행한다.
struct OnAppearStudy: View {
    
    @State var myText: String = "Star Text"
    
    var body: some View {
        Text(myText)
            .font(.largeTitle)
            // 뷰가 사라진 직후 해당 코드 실행
            .onDisappear(perform: {
            	myText = "End Text"
            })
    }
}
profile
iOS Developer | Product Designer @snacknam
post-custom-banner

0개의 댓글