【发布时间】:2020-09-04 12:18:30
【问题描述】:
struct ContentView: View {
@State var hideNavigationBar: Bool = false
var body: some View {
NavigationView {
ScrollView {
VStack {
Rectangle().fill(Color.red).frame(height: 50)
.onTapGesture(count: 1, perform: {
withAnimation {
self.hideNavigationBar.toggle()
}
})
VStack {
ForEach(1..<50) { index in
HStack {
Text("Sample Text")
Spacer()
}
}
}
}
}
.navigationBarTitle("Browse")
.navigationBarHidden(hideNavigationBar)
}
}
}
当您点击红色矩形时,它会捕捉导航栏。我以为withAnimation{} 会解决这个问题,但事实并非如此。在UIKit 中,您会执行类似navigationController?.setNavigationBarHidden(true, animated: true) 的操作。
在 xCode 12 beta 6 和 xCode 11.7 中测试
【问题讨论】:
-
我仍在学习 SwiftUI 中的动画...目前我知道我们必须为父视图设置动画。您是否尝试将
.animate()视图修饰符应用于ScrollView? (我建议把它放在.navigationBarHidden(hideNavigationBar)
标签: swift swiftui hidden navigationbar