[英]SwiftUI - Transition Animations not working in GeoReader?
我有這樣的代碼:
VStack{
if (DeleteScreen.sharedInstance.postDelete){
VStack{
GeometryReader{_ in
DeletePostAlert()
.frame(maxWidth: .infinity, alignment: .center)
.frame(maxHeight: .infinity, alignment: .center)
.transition(AnyTransition.opacity.animation(.easeInOut(duration: 0.2)))
}.background(Color.black.opacity(0.65))
.onDisappear{
}
.onAppear{
}
}
}
}
DeletePost 警報的定義如下:
class DeleteScreen: ObservableObject {
static let sharedInstance = DeleteScreen()
@Published var postDelete: Bool = false
}
但是,由於某種原因,過渡動畫不起作用。 我試圖讓 DeletePostAlert() 淡入或滑入或其他東西,但到目前為止我嘗試過的一切都沒有奏效。 我也嘗試過類似.animation(.spring()),但無濟於事。
任何關於我在這里做錯的指導將不勝感激。
謝謝
我也有完全一樣的問題。 看起來像一個錯誤。
一個可能對您有用的解決方案是在GeometryReader
之上設置transition
修飾符。
VStack {
if(DeleteScreen.sharedInstance.postDelete) {
VStack {
GeometryReader { _ in
DeletePostAlert()
.frame(maxWidth: .infinity, maxHeight: .infinity, alignment: .center)
}
.transition(AnyTransition.opacity.animation(.easeInOut(duration: 0.2)))
.background(Color.black.opacity(0.65))
.onDisappear { ... }
.onAppear { ... }
}
}
}
順便說一句:我想知道如果您忽略GeometryReader
的geometry
值,為什么還要使用它。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.