navigationController?.hidesBarsOnSwipe = true
支持Swift在滚动条上隐藏导航栏
为了清楚起见,我希望它仅在滚动状态下隐藏,因此.navigationBarHidden(true)
不足够。
我尝试按照this Stackoverflow答案(我添加了nc.hidesBarsOnSwipe = true
)中的说明访问NavigationController,并且在编译时,它不起作用。
SwiftUI支持此功能吗?
答案 0 :(得分:1)
NavigationView
似乎仍然是越野车。例如,默认情况下,ScrollView
会忽略标题区域,而只是在其下方滚动。
在我看来,您可以同时使用displayMode: .inline
和StackNavigationViewStyle()
来完成这项工作。
struct ContentView: View {
var body: some View {
NavigationView {
ScrollView {
ForEach(0...20, id: \.self) { count in
(count % 2 == 0 ? Color.red : Color.blue)
.frame(height: 44.0)
}
}
.background(NavigationConfigurator { nc in // NavigationConfigurator is from the OP's post: https://stackoverflow.com/a/58427754/7834914
nc.hidesBarsOnSwipe = true
})
.navigationBarTitle("Hello World", displayMode: .inline)
}
.navigationViewStyle(StackNavigationViewStyle())
}
}