Размещение интерактивных видов перед скрытой панелью навигации NavigationView - PullRequest
0 голосов
/ 09 июня 2019

У меня есть NavigationView с NavigationButton внутри него, но я не могу заставить NavigationButton находиться в верхней части экрана и все еще быть в состоянии нажимать, даже если панель навигации скрыта.

Этот код:

struct ContentView : View {
    var body: some View {
        NavigationView {
            VStack {
                NavigationButton(destination: Text("Button Clicked")) {
                    Text("Hello World")
                    .background(Color.yellow)
                }
                Spacer()
            }
        }
        .navigationBarHidden(true)
    }
}

Выглядит как this, но я хочу, чтобы он выглядел как this.

Я попытался добавить отрицательный отступ в верхнюю часть VStack.padding([.top], -95), и это визуально работает, но тогда я не могу взаимодействовать с кнопкой, нажимая ее (я думаю, что это скрытая навигацияbar). Я попытался установить VStack s zIndex на 10000, чтобы решить эту проблему, но он все еще не работал. Есть ли способ для меня, чтобы переместить кнопку вверх, при этом убедившись, чтокнопка распознает, когда она нажата?

Ответы [ 2 ]

2 голосов
/ 09 июня 2019

Добавьте navigationBarTitle перед тем, как скрыть панель навигации:

struct ContentView : View {
    var body: some View {
        NavigationView {
            VStack {
                NavigationButton(destination: Text("Button Clicked")) {
                    Text("Hello World")
                    .background(Color.yellow)
                }
                Spacer()
        }
        .navigationBarTitle(Text("Title")) // Add this line
        .navigationBarHidden(true)
    }
}
0 голосов
/ 09 июня 2019

Добавьте этот модификатор в NavigationView edgesIgnoringSafeArea(.top).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...