【问题标题】:SwiftUI iterating List not applying listRow modifiersSwiftUI 迭代列表不应用 listRow 修饰符
【发布时间】:2026-02-07 04:15:02
【问题描述】:

我创建了以下List

List {
 Text("Hello")
   .listRowBackground(Color.red)
}

呈现此视图:

当我更改 List 以迭代一个范围时,它会停止应用 listRow 修饰符:

List (0 ..< 3) { _ in
  Text("Hello")
    .listRowBackground(Color.red)
}

为什么会这样?

【问题讨论】:

  • 试试这个:List { ForEach { Text....
  • @RajaKishan 谢谢 - 使用 ForEach 的修饰符似乎有效!仍然很好奇为什么 List 不会应用这些修饰符
  • 不知道主要原因,但您可以检查许多适用于 ForEach 的修饰符。甚至使用 ForEach 的苹果文档。检查这个developer.apple.com/documentation/swiftui/text/…

标签: swiftui swiftui-list


【解决方案1】:

您需要ForEach。如doc中所述

SwiftUI ForEach 结构为枚举的每个元素计算视图,并使用生成的文本提取其每个元素的原始值,以创建每个列表行项。 listRowBackground(_:) 修饰符然后将您提供的视图放置在每个列表行项的后面:

所以最后的代码是,

List {
    ForEach(0 ..< 3){  _ in
        Text("Hello")
            .listRowBackground(Color.red)
    }
}

【讨论】:

    最近更新 更多