SwiftUI:listRowInsets 未按预期工作
SwiftUI: listRowInsets not working as expected
listRowInsets(_:)
在使用 List()
和 List(Data,id)
时未按预期工作。在下面的 示例 1 中,零插图完美地工作,而在 示例 2 中它什么都不做。
示例 1:
struct ContentView: View {
var body: some View {
List {
Color.red
.listRowInsets(.init(top: 0, leading: 0, bottom: 0, trailing: 0))
Color.blue
.listRowInsets(.init(top: 0, leading: 0, bottom: 0, trailing: 0))
Color.yellow
.listRowInsets(.init(top: 0, leading: 0, bottom: 0, trailing: 0))
}
}
}
结果:
示例 2
struct ContentView: View {
var colors: [Color] = [.red, .blue, .yellow]
var body: some View {
List(colors, id: \.self) { color in
color.listRowInsets(.init(top: 0, leading: 0, bottom: 0, trailing: 0))
}
}
}
结果:
我认为原因在于使用的构造函数。 .listRowInsets
by documentation effects view 被放置在 List 中(直接)。
以下作品
var colors: [Color] = [.red, .blue, .yellow]
var body: some View {
List {
ForEach(colors, id: \.self) { color in
color.listRowInsets(.init(top: 0, leading: 0, bottom: 0, trailing: 0))
}
}
}
除了 Asperi 的回答,如果你有部分,你需要对部分应用 listRowInsets 视图修饰符,否则设置也会被忽略。
listRowInsets(_:)
在使用 List()
和 List(Data,id)
时未按预期工作。在下面的 示例 1 中,零插图完美地工作,而在 示例 2 中它什么都不做。
示例 1:
struct ContentView: View {
var body: some View {
List {
Color.red
.listRowInsets(.init(top: 0, leading: 0, bottom: 0, trailing: 0))
Color.blue
.listRowInsets(.init(top: 0, leading: 0, bottom: 0, trailing: 0))
Color.yellow
.listRowInsets(.init(top: 0, leading: 0, bottom: 0, trailing: 0))
}
}
}
结果:
示例 2
struct ContentView: View {
var colors: [Color] = [.red, .blue, .yellow]
var body: some View {
List(colors, id: \.self) { color in
color.listRowInsets(.init(top: 0, leading: 0, bottom: 0, trailing: 0))
}
}
}
结果:
我认为原因在于使用的构造函数。 .listRowInsets
by documentation effects view 被放置在 List 中(直接)。
以下作品
var colors: [Color] = [.red, .blue, .yellow]
var body: some View {
List {
ForEach(colors, id: \.self) { color in
color.listRowInsets(.init(top: 0, leading: 0, bottom: 0, trailing: 0))
}
}
}
除了 Asperi 的回答,如果你有部分,你需要对部分应用 listRowInsets 视图修饰符,否则设置也会被忽略。