Как удалить лишнее поле над формой - PullRequest
0 голосов
/ 13 июля 2020

Я хочу, чтобы часть моего представления была заключена в Form, но не целиком. Я не хочу, чтобы Form занимал так много места, поэтому я уменьшил его, используя .frame(). Хотя поверх формы все еще есть много полей. Вот мой код.

struct ContentView: View {
    var body: some View {
        NavigationView {
            ScrollView {
                VStack {
                    Form {
                        Text("Some text in a form")
                    }
                        .frame(width: 400, height: 90) // shrinks Form size, but doesn't remove margin
         
                    Text("Some more text")
               }
            }
        }
    }
}

Высота .frame(), похоже, не удаляет лишнее пространство в верхней части формы (светло-серая область).

iPhone снимок экрана с формой с дополнительным верхним полем

Я также пробовал добавить .listRowInsets(EdgeInsets()) к первому виду Text, но это не удаляет верхнее поле. Есть идеи?

Ответы [ 2 ]

0 голосов
/ 13 июля 2020

Это пустое пространство - это пространство панели просмотра навигации для большого заголовка (по умолчанию), которое в вашем случае пусто, поэтому просто скройте его

    var body: some View {
        NavigationView {
            ScrollView {
                VStack {
                    Form {
                        Text("Some text in a form")
                    }
                        .frame(width: 400, height: 90) // shrinks Form size, but doesn't remove margin

                    Text("Some more text")
               }
            }
            .navigationBarTitle("")            // << this !!
            .navigationBarHidden(true)      // << and this !!
        }
    }
0 голосов
/ 13 июля 2020

Форма не имеет прямого свойства скрывать заголовок. Для этого вам нужно использовать раздел, как показано ниже -

struct ContentView: View {
    var body: some View {
        NavigationView {
            ScrollView {
                VStack {
                     Form {
                        Section(header: VStack(alignment: .center, spacing: 0) {
                           Text("Some text in a form").foregroundColor(Color.black).padding(.all, 6)
                        }) {
                            EmptyView()
                        }
                     }
                     .frame(width: 400.0, height: 40.0)
         
                    Text("Some more text")
               }
            }
        }
    }
}
...