我没有成功地在Form
中添加视图而不将其嵌入Section
中,因此我尝试为Section
设置Section
“不可见”设置Form
具有相同的背景,但是我也必须隐藏一些分隔符,我发现这个UITableView.appearance().separatorColor = UIColor(named: "Background")
为分隔符设置了与Form
背景相同的颜色,但是问题是这适用于整个Form
,而我不想要:(
任何想法如何在没有Form
的情况下在Section
中添加视图,或者如何“隐藏”该部分而又不影响Sections
中的其他Form
?
struct ContentView: View {
init() {
UITableView.appearance().separatorColor = UIColor(named: "Background")
}
var body: some View {
Form {
Section {
Text("text1")
Text("text2")
Text("text3")
}
Text("View without section")
.font(.title)
.listRowBackground(Color("Background"))
}
}
}
答案 0 :(得分:0)
将此行添加到init()
UITableView.appearance().separatorStyle = .none
答案 1 :(得分:0)
有点晚了,但可能会帮助其他人:
.listRowInset
设置为 EdgeInsets()
使用框架:
VStack(alignment: .leading) {
Text("Title").font(.headline)
Text("Subheadline").font(.subheadline)
}
.frame(maxWidth: .infinity, maxHeight: .infinity, alignment: .leading)
.listRowInsets(EdgeInsets())
.background(Color(UIColor.systemGroupedBackground))
使用垫片(此解决方案在顶部和底部添加了更多的填充):
HStack {
VStack(alignment: .leading) {
Spacer()
Text("Title").font(.headline)
Text("Subheadline").font(.subheadline)
Spacer()
}
Spacer()
}
.listRowInsets(EdgeInsets())
.background(Color(UIColor.systemGroupedBackground))
完整代码:
NavigationView {
Form {
VStack(alignment: .leading) {
Text("Testing a title").font(.headline)
Text("Testing a subheadline").font(.subheadline)
}
.frame(maxWidth: .infinity, maxHeight: .infinity, alignment: .leading)
.listRowInsets(EdgeInsets())
.background(Color(UIColor.systemGroupedBackground))
Section(header: Text("Title and Category").bold()) {
TextField("Title", text: $title)
TextField("Category", text: $title)
}
}
.navigationTitle("Test Form")
}