问题描述
出于某些原因(请参阅:SwiftUI on MacOS Click-behavior),我必须将列表中线条的背景颜色明确设置为标准颜色。
首先,我有一个奇怪的发现:
如果我在开头选择一行,则所选行的颜色为浅灰色。
单击一段时间后,所选行的颜色变为蓝色。
这是什么原因?
我怎样才能防止这种情况?
实际问题是:如何将 func standardBackgoundColors()
中的颜色设置为系统默认值。
这是我的代码:
struct ListColorTest: View {
@State var sel :Int? = nil
var body: some View {
List(selection: $sel) {
ColoredLine(lineNr:0,selection: $sel).tag(0)
ColoredLine(lineNr:1,selection: $sel).tag(1)
ColoredLine(lineNr:2,selection: $sel).tag(2)
ColoredLine(lineNr:3,selection: $sel).tag(3)
ColoredLine(lineNr:4,selection: $sel).tag(4)
ColoredLine(lineNr:5,selection: $sel).tag(5)
}
}
}
struct ColoredLine: View {
@Environment(\.colorScheme) var colorScheme: ColorScheme
var lineNr : Int
@Binding var selection : Int?
var body: some View {
HStack {
Text("X: ")
Text("some Text")
Spacer()
}
.background( standardBackgoundColors() )
.onTapGesture(count: 1,perform: {
print("Line clicked")
selection = lineNr
})
}
func standardBackgoundColors()->Color{
if (selection == lineNr) {
return colorScheme == .light ? Color(#colorLiteral(red: 0.9764705896,green: 0.850980401,blue: 0.5490196347,alpha: 1)) : Color.black
} else {
return colorScheme == .light ? Color(#colorLiteral(red: 0.8039215803,green: 0.8039215803,blue: 0.8039215803,alpha: 1)) : Color.black
}
}
}
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)