首页 > 解决方案 > 为什么我的 ListView 什么都没有,SwiftUI

问题描述

我不知道为什么我的列表视图是空的,这是我的代码:

List(asArray, id: \.self) { i in
                
        Text(i)
          .foregroundColor(.black)
}

而且我的 Array 没问题,因为如果我用 ForEach Block 代替 ListView,一切都会呈现出来。

ForEach(asArray, id: \.self) { i in
                
        Text(i)
          .foregroundColor(.black)
}

此代码运行良好。

看,这段代码运行良好

ForEach(asArray, id: \.self) { i in
      Text(i)
}

但是如果我将孔代码放在列表视图中,则没有任何效果

List{
   ForEach(asArray, id: \.self) { i in
         Text(i)
   }
}

为什么?我不知道...

顺便说一句:这也不起作用

    List {
    ForEach(0 ..< asArray.count) { index in
        Text(asArray[index])
            .foregroundColor(.black)
}
}

谢谢你的帮助。布托什

标签: swiftui

解决方案


自定义类/结构

为确保您的视图正确显示,请确保 ListView 不在 ScrollView 内。接下来,确保您的数组符合Identifiable. 一旦它符合可识别的,您可以调用以下内容:

List(asArray) { i in
    Text(i)
        .foregroundColor(.black)
}

当您的数组符合 Identifiable 时,请确保您的类或结构有一个名为的变量id,这样您就不必在 ListView 中指定 id 参数。

内置类/结构

您需要执行以下操作,因为 Swift 内置的某些类/结构不符合Identifiable

List {
    ForEach(0 ..< asArray.count) { index in
        Text(asArray[index])
            .foregroundColor(.black)
    }
}

推荐阅读