当您使用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
之外并将所有内容放入堆栈,但这会带来其他一些我想避免的滚动问题。
答案 0 :(得分:3)
这是一个解决方案。经过Xcode 11.4 / iOS 13.4的测试
Image(uiImage: someImage)
.resizable()
.aspectRatio(contentMode: .fill)
.listRowInsets(EdgeInsets()) // << this one !!
注意:不需要对UIScreen.main.bounds.width
进行硬编码