如何在SwiftUI中删除列表的左右填充? 我创建的每个列表在单元格的开头和结尾都有边界。
我应该添加什么修饰符以删除此内容?
答案 0 :(得分:30)
看来我们可以在{strong> iOS 14
中将PlainListStyle
用于List
List {
Text("Row")
}
.listStyle(PlainListStyle())
答案 1 :(得分:6)
对于.listRowInsets
初始化的List
中的行,content
似乎无效。
所以这不起作用:
List(summaries) { summary in
SummaryRow(summary: summary)
.listRowInsets(EdgeInsets())
}
但是这样做:
List {
ForEach(summaries) { summary in
SummaryRow(summary: summary)
.listRowInsets(EdgeInsets())
}
}
答案 2 :(得分:5)
去除填充
iOS 14.2、Xcode 12.2
ScrollView {
LazyVStack {
ForEach(viewModel.portfolios) { portfolio in
PortfolioRow(item: portfolio)
}
}
}
这使您可以完全控制列表(您也可以使用此代码删除分隔符)。 List 的当前实现不提供完全控制并包含一些问题。
答案 3 :(得分:2)
使用此修饰符:
.listRowInsets(EdgeInsets(....))
但是,如documentation所述,您必须在List
的视图上使用修饰符,而不是List
本身。>
设置插入列表中的插图以应用于视图。 (强调我的)
用法示例:
List {
Text("test")
.listRowInsets(EdgeInsets(top: -20, leading: -20, bottom: -20, trailing: -20))
}
答案 4 :(得分:0)
修饰符为
.listRowInset(EdgeInsets(......))
答案 5 :(得分:0)
您应该致电
.listRowInsets()
对于行,像这样:
List(items) {
YoursRowView()
.listRowInsets(EdgeInsets(top: 0, leading: 10, bottom: 0, trailing: 10))
}
答案 6 :(得分:0)
上述解决方案对我没有解决,因为我的列表有部分。
这为我解决了:
List {
ForEach(years, id:\.self) { year in
Section(header: SectionHeader(year)) {
VStack(alignment:.leading) {
ForEach(cars[year]!, id:\.self) { car in
ListItem(car)
.frame(width: UIScreen.main.bounds.size.width,
alignment: .center)
.listRowInsets(.init())
}
}
}
.frame(width: UIScreen.main.bounds.size.width,
alignment: .center)
.listRowInsets(.init())
.listStyle(GroupedListStyle())
}
}
在简历中,您必须重复该部分的命令。
答案 7 :(得分:-1)
.listStyle(GroupedListStyle())