[英]Transition animation behavior is not as expected in SwiftUI with double If and if else conditional
我想知道當我使用兩個不同的 if 語句塊並且當我使用 if-else 語句期望相同的行為時,我的轉換 animation 有什么不同或為什么會有不同的行為,這里有一些示例:
VStack {
homeHeader
columnTitles
if !showPortfolio {
allCoinsListView
.transition(.move(edge: .leading))
}
if showPortfolio {
portfolioListView
.transition(.move(edge: .trailing))
}
Spacer(minLength: 0)
}
VStack {
homeHeader
columnTitles
if !showPortfolio {
allCoinsListView
.transition(.move(edge: .leading))
} else {
portfolioListView
.transition(.move(edge: .trailing))
}
Spacer(minLength: 0)
}
這是ViewBuilder
的細節:
我找到了解決這個問題的方法。 差異可能與SwiftUI Result Builder如何將if-else 語句轉換為 buildIf、buildEither 等與 if-else 語句的轉換方式有關。 請參閱: https://jasonzurita.com/swiftui-if-statement/
如果您在if-else 語句中明確定義不對稱轉換:
VStack {
homeHeader
columnTitles
if !showPortfolio {
allCoinsListView
.transition(.asymmetric(insertion: .move(edge: .leading),
removal: .move(edge: .trailing)))
} else {
portfolioListView
.transition(.asymmetric(insertion: .move(edge: .trailing),
removal: .move(edge: .leading)))
}
Spacer(minLength: 0)
}
由於這篇文章,我找到了這個問題的答案: SwiftUI Switch Statement Transition Behavior is not as expected
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.