Удалить заполнение формы SwiftUI - PullRequest
2 голосов
/ 21 июня 2020

Когда вы используете SwiftUI Form, он создает отступы на переднем крае, что подходит для ввода Form, но я хотел бы добавить в форму дополнительный контент, например изображение, занимающее всю ширину экрана, но поскольку изображение находится в Form, применяется заполнение, и изображение немного смещается за пределы экрана. Как удалить все отступы Form?

struct MyForm: View {
  var body: some View {
    Form {
      Image(uiImage: someImage)
        .resizable()
        .aspectRatio(contentMode: .fill)
        .frame(width: UIScreen.main.bounds.width)

      TextField("Name", text: $name)

      // Other fields
    }
  }
}

Я знаю, что базовое представление для Form - это UITableView, где я могу делать такие вещи, как UITableView.appearance().backgroundColor = .clear, чтобы изменить внешний вид Form , но я не могу понять, как удалить начальные отступы.

Я также знаю, что могу переместить вид Image за пределы Form и поместить все в стек, но это создает другие проблемы с прокрутка, которую я бы хотел избежать.

1 Ответ

3 голосов
/ 21 июня 2020

Вот решение. Протестировано с Xcode 11.4 / iOS 13.4

  Image(uiImage: someImage)
    .resizable()
    .aspectRatio(contentMode: .fill)
    .listRowInsets(EdgeInsets())        // << this one !!

Примечание: жесткий код на UIScreen.main.bounds.width не требуется

...