将可交互视图放置在NavigationView的隐藏导航栏前面

时间:2019-06-08 23:31:41

标签: ios swift swiftui

我有一个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)的顶部添加一个负填充,它在视觉上可以正常工作,但是我无法通过点击它来与按钮交互(我认为(它位于隐藏的导航栏的后面)。我尝试将VStack的{​​{1}}设置为10000以解决此问题,但仍然无法正常工作。我有办法移动按钮仍显示在顶部,同时仍要确保该按钮在被点击时能够识别?

2 个答案:

答案 0 :(得分:2)

在隐藏导航栏之前添加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)
    }
}

答案 1 :(得分:0)

将此修饰符添加到NavigationView edgesIgnoringSafeArea(.top)