SwiftUI:返回时如何平滑过渡 bottomBar 工具栏?
SwiftUI: How to smoothly transition bottomBar toolbar when navigating back?
我想在我的其中一个视图中放置一个工具栏 .bottomBar
。然而,当导航离开和返回时,工具栏不会与视图的其余部分平滑过渡 - 它突然出现,将视图的全部内容向上移动,如下所示。
这似乎只影响屏幕底部的工具栏 - 如您所见,放置在屏幕顶部的工具栏似乎工作正常。
如何让底部工具栏在导航回第一屏时平滑过渡?
struct ContentView: View {
var body: some View {
NavigationView {
NavigationLink(
destination: Text("Destination"),
label: {
Text("Navigate")
})
.toolbar {
ToolbarItem(placement: .bottomBar) {
Text("Bottom")
}
ToolbarItem(placement: .principal) {
Text("Top")
}
}
}
}
}
我一直遇到和你一样的问题,顶部工具栏没问题,但底部工具栏闪烁。
我目前使用的解决方法是手动创建底部工具栏,例如:
struct ContentView: View {
var body: some View {
NavigationView {
VStack {
Spacer()
NavigationLink(
destination: Text("Destination"),
label: {
Text("Navigate")
})
Spacer()
NavigationLink(
destination: Text("Destination"),
label: {
ZStack {
Rectangle()
.frame(height: 90.0)
.foregroundColor(.gray).opacity(0.08)
.border(Color.gray, width: 0.2)
Text("Bottom")
.foregroundColor(.black)
}
})
}
.edgesIgnoringSafeArea(.all)
.toolbar {
ToolbarItem(placement: .principal) {
Text("Top")
}
}
}
}
}
Demo link (not allowed to post images yet)
这并不理想 - 我更喜欢使用工具栏 API,但这种方式确实会阻止内容向上移动。
我想在我的其中一个视图中放置一个工具栏 .bottomBar
。然而,当导航离开和返回时,工具栏不会与视图的其余部分平滑过渡 - 它突然出现,将视图的全部内容向上移动,如下所示。
这似乎只影响屏幕底部的工具栏 - 如您所见,放置在屏幕顶部的工具栏似乎工作正常。
如何让底部工具栏在导航回第一屏时平滑过渡?
struct ContentView: View {
var body: some View {
NavigationView {
NavigationLink(
destination: Text("Destination"),
label: {
Text("Navigate")
})
.toolbar {
ToolbarItem(placement: .bottomBar) {
Text("Bottom")
}
ToolbarItem(placement: .principal) {
Text("Top")
}
}
}
}
}
我一直遇到和你一样的问题,顶部工具栏没问题,但底部工具栏闪烁。
我目前使用的解决方法是手动创建底部工具栏,例如:
struct ContentView: View {
var body: some View {
NavigationView {
VStack {
Spacer()
NavigationLink(
destination: Text("Destination"),
label: {
Text("Navigate")
})
Spacer()
NavigationLink(
destination: Text("Destination"),
label: {
ZStack {
Rectangle()
.frame(height: 90.0)
.foregroundColor(.gray).opacity(0.08)
.border(Color.gray, width: 0.2)
Text("Bottom")
.foregroundColor(.black)
}
})
}
.edgesIgnoringSafeArea(.all)
.toolbar {
ToolbarItem(placement: .principal) {
Text("Top")
}
}
}
}
}
Demo link (not allowed to post images yet)
这并不理想 - 我更喜欢使用工具栏 API,但这种方式确实会阻止内容向上移动。