SwiftUI:listRowInsets不能按预期方式工作

时间:2019-11-19 08:00:31

标签: xcode swiftui swiftui-list

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))
        }
    }
}

结果:

Example 1


示例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))
        }
    }
}

结果:

Example 2

1 个答案:

答案 0 :(得分:1)

我认为原因是在使用的构造函数中。 .listRowInsets按文档效果视图被放置在列表中(直接)。

以下作品

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))
        }
    }
}