Как выровнять виды по вертикали в верхней части листа в SwiftUI - PullRequest
1 голос
/ 04 августа 2020

Я хочу выровнять виды в верхней части модального листа по вертикали. В родительском представлении есть NavigationView и VStack внутри.

import SwiftUI

struct DemoView: View {
    @State private var selection: Int = 0
    @State private var text: String = ""
    
    var body: some View {
        NavigationView {
            VStack {
                Picker(selection: $selection, label: Text("...")) {
                    Text("...").tag(0)
                    Text("...").tag(1)
                }
                .border(Color.gray)
                
                TextField("# edit", text: $text)
                .padding(8.0)
                .border(Color.gray)
                
                Spacer()
                .border(Color.gray)
            }
            .navigationBarItems(trailing: Button {
                
            } label: { Text("Done") })
        }
    }
}

struct DemoView_Previews: PreviewProvider {
    static var previews: some View {
        DemoView()
    }
}

Однако в предварительном просмотре появляется лишнее пространство.

введите описание изображения здесь

Как удалить это место? Влияет ли на эту проблему выравнивание NavigationView и VStack? Или Picker нужно дополнительное место вверху? Спасибо.

1 Ответ

1 голос
/ 04 августа 2020

Это большая область заголовка навигации, вы можете сделать ее встроенной

Spacer()
  .border(Color.gray)
  .navigationBarTitle("", displayMode: .inline)   // inside NavigationView
...