SwiftUI NavigationBar не исчезает при прокрутке - PullRequest
1 голос
/ 30 марта 2020

Я хочу скрыть свои NavigationBar во время прокрутки, фактически, он должен скрываться автоматически, но когда я пытался с несколькими представлениями, это не работает. Кроме того, это работает, когда я удаляю пользовательские представления и капсулирую List с NavigationView. Но мне нужно SearchBar и StatusView просмотр. Есть ли какие-либо предложения?

Кстати, я запускаю его на устройстве, здесь я использую canvas для демонстрации.

Спасибо.

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()
        }
    }

image description

1 Ответ

1 голос
/ 30 марта 2020

Просто идея, неуклюжий ... попробуйте поместить ваши пользовательские представления в List, как показано ниже (я знаю, что это будет работать, но я не уверен, будет ли работать автоматическое скрытие)

NavigationView {
  List {
      SearchBar(searchText: $viewModel.searchText)
      StatusView(status: $viewModel.status)
      Divider()

      ForEach (0...viewModel.characters.results.count, id: \.self) { index in
      ...
...