我要更改所选行的颜色。
您可能会看到,默认情况下,它的颜色是浅灰色。
我不知道该怎么做,因为我根本找不到访问该行的方法。 有什么办法吗?
演示代码:
struct ContentView: View {
var data = Array(0...20).map { "\($0)" }
@State private var selected = 0
var body: some View {
VStack {
Picker("", selection: $selected) {
ForEach(0 ..< data.count) {
Text(data[$0])
}
}
}
}
}
UIKit的答案也将受到欢迎,因为我也没有找到答案。
谢谢!
答案 0 :(得分:1)
这将是一种对其进行自定义的方法。 解决方法是,只需将RoundedRectangle放置在您选择的颜色的正下方即可。
这不是完美的,因为默认的灰色不透明叠加层位于该颜色的顶部,并且必须根据框架确定约束条件。
struct ContentView: View {
var data = Array(0...20).map { "\($0)" }
@State private var selected = 0
var body: some View {
ZStack {
RoundedRectangle(cornerRadius: 5)
.frame(width: UIScreen.main.bounds.size.width-18, height: 32)
.foregroundColor(.green)
Picker("", selection: $selected) {
ForEach(0 ..< data.count) {
Text(data[$0])
}
}
}
}
}