How to remove the default Navigation Bar space in SwiftUI NavigiationView

后端 未结 15 2758
我在风中等你
我在风中等你 2020-11-29 20:00

I am new to SwiftUI (like most people) and trying to figure out how to remove some whitespace above a List that I embedded in a NavigationView

In this image, you can

15条回答
  •  情话喂你
    2020-11-29 20:09

    View Modifiers made it easy:

    //ViewModifiers.swift
    
    struct HiddenNavigationBar: ViewModifier {
        func body(content: Content) -> some View {
            content
            .navigationBarTitle("", displayMode: .inline)
            .navigationBarHidden(true)
        }
    }
    
    extension View {
        func hiddenNavigationBarStyle() -> some View {
            modifier( HiddenNavigationBar() )
        }
    }
    

    Example:

    import SwiftUI
    
    struct MyView: View {
        var body: some View {
            NavigationView {
                VStack {
                    Spacer()
                    HStack {  
                        Spacer()
                        Text("Hello World!")
                        Spacer()
                    }
                    Spacer()
                }
                .padding()
                .background(Color.green)
                //remove the default Navigation Bar space:
                .hiddenNavigationBarStyle()
            }
        }
    }
    

提交回复
热议问题