[英]SwiftUI - Animation when hiding view
在視圖中的一組主體中顯示或隱藏視圖時,我試圖用 SwiftUI 找出動畫。 我有這個代碼:
var body: some View {
Group {
if isIntroShown {
EAIntroViewContentView()
.transition(AnyTransition.opacity.animation(.easeInOut(duration: 1.0)))
}
if mainhomeMode == .mylists {
MyLists()
.onReceive(publisher) { (payload) in
self.toggleMainView()
}
} else {
CarsHome()
.onReceive(publisher) { (payload) in
self.toggleMainView()
}
}
}.onReceive(publisherIntro) { (payload) in
self.onShowIntroButton()
}
}
隱藏EAIntroView
,過渡動畫正常工作,但塊彈出將mainhomeMode
移動到窗口頂部而沒有動畫。 如何隱藏和顯示介紹視圖使隱藏/顯示事件平滑?
好吧,經過一些測試和@Boris 的回復,我知道我需要做什么。
代碼應該是這樣的:
func onShowIntroButton() {
withAnimation(.easeInOut(duration: 0.5)) {
isIntroShown.toggle()
}
}
var body: some View {
VStack{
if isIntroShown {
EAIntroViewContentView()
.transition(AnyTransition.opacity.animation(.linear(duration: 0.5)))
}
Spacer()
if mainhomeMode == .mylists {
MyLists()
.onReceive(publisher) { (payload) in
self.toggleMainView()
}
} else {
CarsHome()
.onReceive(publisher) { (payload) in
self.toggleMainView()
}
}
}.onReceive(publisherIntro) { (payload) in
self.onShowIntroButton()
}
}
我正在使用通知切換視圖。 所以動畫必須從toggle()
函數中調用。
在這種情況下,我必須在onShowIntroButton()
函數中切換介紹視圖時調用動畫。
VStak
和Spacer()
也使動畫更流暢。希望對其他開發者有所幫助。
你有沒有嘗試過這樣的事情?
withAnimation {
self.toggleMainView()
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.