我正在尝试为列表设置背景颜色,以适应iOS模式(浅色/深色)。 我使用.systemGray5在VStacks中没有问题,但是当在列表中使用它时,我更改为暗模式时,我得到了非常暗的几乎是黑色的颜色,这使所有内容都难以理解。
无论列表是动态的还是静态的,都会发生这种情况。这是错误吗?还是有其他替代方法?
List {
Text("Privacy").foregroundColor(Color(.systemRed))
}.colorMultiply(Color(.systemGray5))
答案 0 :(得分:1)
问题是colorMultiply
将列表中的所有颜色(文本,背景,分隔符)与给定颜色相乘(请参见multiply color blending)。这样会使整个视图变暗,在明亮模式下看起来似乎还可以,但是与您在黑暗模式下想要做的相反。
有两种方法可以更改列表中的背景颜色:
List {
Text("Privacy").foregroundColor(Color(.systemRed))
.listRowBackground(Color(.systemGray5))
}
.background(Color(.systemGray5))
background
会更改整个列表的背景,但是我想这只能在分组列表中真正看到,因为单元格之间通常没有任何间距。
listRowBackground
在List环境中使用时更改视图的背景颜色。那可能就是您要在这里使用的。
答案 1 :(得分:0)
Frank Schlegel提供了仅适用于静态列表的答案。在苹果公司为动态列表解决此问题之前,我通过使用以下代码解决了我的问题
List {
ForEach(pumpData) { pump in
Text("pump").listRowBackground(Color(.systemGray5))
}
}.background(Color(.systemGray5))
答案 2 :(得分:0)
application/reports+json
为我工作。