OnAppear, OnDisappear
- 뷰가 나타나거나 사라질 때 입력된 코드를 실행
onAppear
- 뷰가 화면 상에 나타날 때 입력된 코드를 실행한다.
struct OnAppearStudy: View {
@State var myText: String = "Star Text"
var body: some View {
Text(myText)
.font(.largeTitle)
.onAppear(perform: {
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"
})
}
}