[英]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.