ios - 更改特定列表元素 SwiftUI 的颜色
问题描述
我的应用程序中有一个“玩家”列表,我希望其中一些根据他们的属性具有不同的背景颜色。
每个 Player 对象都有一个 true 或 false 的 .active 属性。根据这个值,我希望该行的背景是浅灰色而不是其他的白色。我该怎么做?我希望它会像这样简单:
List(homeTeam.players) {player in
HStack{
Text("\(player.shirtNumber) - \(player.playerName)")
Spacer()
Text("\(player.timerText)")
}
}
解决方案
可以使用修饰符来实现listRowBackground
(但您需要使用ForEach
而不是List
直接使用)。
List {
ForEach(homeTeam.players) {player in
HStack{
Text("\(player.shirtNumber) - \(player.playerName)")
Spacer()
Text("\(player.timerText)")
}
.listRowBackground(player.active ? Color(UIColor.lightGray) :
Color(UIColor.systemBackground))
}
}
推荐阅读
- sql - 在 BigQuery 中取消嵌套 JSON 字符串化数组
- java - 如何在 Activity(非 AppCompatAcitivity)中打开片段?
- c++ - 范围内的素数和复合数对
- vue.js - 在 nuxt js 中使用 axios 验证过期后重定向
- c# - 创建自定义渲染器时出现 TypeLoadException
- amazon-web-services - KMS 和 S3 存储桶
- c# - Azure 函数不运行异步方法
- wpf - 从资源字典中选择图像源路径
- python - 在 Python 中使用 csv 阅读器的变量范围
- tensorflow - 如何在谷歌colab中导入张量流