![](/img/trans.png)
[英]Transition animation behavior is not as expected in SwiftUI with double If and if else conditional
[英]SwiftUI animation transition of conditional views
所以,我有这个带有按钮的小应用程序,我可以在其中更改主视图显示其项目的方式,使用网格或列表。 但是当它从一个过渡到另一个时,我想添加一点 animation。 我试图在按钮上添加withAnimation
或在视图中添加 .transition .transition()
有点搞砸了,但似乎没有任何效果。 关于如何实现这一目标的任何提示?
struct FrameworkGridView: View {
@StateObject var viewModel = FrameworkGridViewModel()
@Binding var isGrid: Bool
var body: some View {
NavigationView {
Group {
if viewModel.isGrid {
ScrollView {
LazyVGrid(columns: viewModel.columns) {
ForEach(MockData.frameworks) { framework in
FrameworkTitleView(framework: framework, isGrid: $viewModel.isGrid)
.onTapGesture {
viewModel.selectedFramework = framework
}
}
}
}
.sheet(isPresented: $viewModel.isShowingDetailView) {
DetailView(framework: viewModel.selectedFramework ?? MockData.sampleFramework, isShowingDetailView: $viewModel.isShowingDetailView, isGrid: $viewModel.isGrid)
}
} else {
List {
ForEach(MockData.frameworks) { framework in
NavigationLink(destination: DetailView(framework: framework, isShowingDetailView: $viewModel.isShowingDetailView, isGrid: $viewModel.isGrid)) {
FrameworkTitleView(framework: framework, isGrid: $viewModel.isGrid)
}
}
}
}
}
.toolbar {
Button {
viewModel.isGrid.toggle()
} label: {
Image(systemName: viewModel.isGrid ? "list.dash" : "square.grid.2x2")
}
}
}
}
}
[ ]
我相信您正在寻找matchedGeometryEffect
。 查看WWDC 2020:SwiftUI 中的新增功能,从大约 19 分钟开始。SwiftUI 实验室也有几篇关于它的文章。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.