[英]SwiftUI's onAppear() and onDisappear() called multiple times and inconsistently on Xcode 12.1
[英]SwiftUI onDisappear not being called
我正在使用ScrollView
和VStack
在列表中呈現一堆視圖。 但由於某種原因,沒有調用onDisappear
,但調用了onAppear
。
onDisappear
是否僅在該視圖從屏幕上消失時才調用? 或者當它被取消初始化時
struct AView: View {
var body: some View {
ScrollView(.vertical, showsIndicators: false) {
VStack {
ForEach(0...99, id: \.self) { _ in
SomeView()
.onDisappear {
print("Disappeared")
}
}
}
}
}
}
當你使用VStack
時,它會在里面繪制所有的視圖——所有的視圖都被添加到視圖樹中,無論它在屏幕上是否可見都沒有關系。
如果你用LazyVStack
替換它,它會讓內容變得懶惰——只有可見的視圖會被添加到視圖樹中,並且onDisappear
會按你期望的那樣被調用。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.