如何在 ForEach 视图中的每个项目之间添加分隔线?

col*_*lin 13 foreach listview ios swift swiftui

我正在尝试构建一个循环遍历对象数组的 ForEach 。一切工作正常,但我不知道如何在元素之间添加分隔符。

行的布局位于单独的视图中,我尝试向行添加一个分隔符,这导致列表末尾看起来很糟糕,因为分隔符位于最后一项下方。

我无法使用List,因为它不是页面上的唯一视图。一切都在ScrollView中内。

作为参考,这里是到目前为止的代码和 UI。

用户界面参考示例

这是列表视图的代码:

VStack {
        ForEach (manufacturers) { manufacturer in
          NavigationLink(destination: Text("test")) {
            Row(manufacturer: manufacturer)
          }
        }
      }
      .background(Color("ListBackground"))
      .cornerRadius(12)
Run Code Online (Sandbox Code Playgroud)

这是行视图的代码:

VStack {
      HStack {
        Text(manufacturer.name)
          .font(.system(size: 18, weight: .regular))
          .foregroundColor(.black)
        Spacer()
        Image(systemName: "chevron.right")
          .foregroundColor(.secondary)
      }
    }
    .padding()
    .buttonStyle(PlainButtonStyle())
Run Code Online (Sandbox Code Playgroud)

有没有办法在 ForEach 循环中的每个项目之间添加分隔符,或者我可以从最后一个项目中删除分隔符

我对能得到的每一个帮助感到高兴。

Asp*_*eri 21

这是一种可能的方法

    ForEach (manufacturers) { manufacturer in
      VStack {
        NavigationLink(destination: Text("test")) {
          Row(manufacturer: manufacturer)
        }

        // I don't known your manufacturer type so below condition might
        // require fix during when you adapt it, but idea should be clear
        if manufacturer.id != manufacturers.last?.id {
           Divider()
        }
      }
    }
Run Code Online (Sandbox Code Playgroud)