我想在滚动时隐藏NavigationBar
,实际上它必须自动隐藏,但是当我尝试使用多个视图时,它不起作用。另外,当我删除自定义视图并用List
封装NavigationView
时,它也可以工作。但是我需要SearchBar
和StatusView
视图。有什么建议吗?
顺便说一下,我在设备上运行它,在这里我使用画布进行演示。
谢谢。
var body: some View {
NavigationView {
VStack(spacing: 0) {
SearchBar(searchText: $viewModel.searchText)
StatusView(status: $viewModel.status)
Divider()
List(0...viewModel.characters.results.count, id: \.self) { index in
if index == self.viewModel.characters.results.count {
LastCell(vm: self.viewModel)
} else {
ZStack {
NavigationLink(destination: DetailView(detail: self.viewModel.characters.results[index])) {
EmptyView()
}.hidden()
CharacterCell(character: self.viewModel.characters.results[index])
}
}
}
.navigationBarTitle("Characters", displayMode: .large)
}
}
.onAppear {
self.viewModel.getCharacters()
}
}
最佳答案
只是想法,抓痒...尝试将您的自定义视图放在List
内,如下所示(我知道它会起作用,但是我不确定自动隐藏是否会起作用)
NavigationView {
List {
SearchBar(searchText: $viewModel.searchText)
StatusView(status: $viewModel.status)
Divider()
ForEach (0...viewModel.characters.results.count, id: \.self) { index in
...
关于ios - SwiftUI导航栏在滚动时不会消失,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/60933304/