SwiftUI Picker中所选项目的文本颜色

时间:2019-09-12 22:41:19

标签: ios swiftui picker disabled-control

在SwiftUI中的窗体上使用选取器时,如果禁用了选取器,则所选项目的文本为浅灰色。对于可读性来说似乎太轻了。如何更改? Disabled control

Enabled Control Apple文档中没有标识字体颜色的选项,特别是针对禁用状态。

    var strengths = ["Mild", "Medium", "Mature"]

    @State private var selectedStrength = 0

    var body: some View {
        NavigationView {
            Form {
                Section {
                    Picker(selection: $selectedStrength, label: Text("Strength")) {
                        ForEach(0 ..< strengths.count) {
                            Text(self.strengths[$0])

                        }
                    }
                    .disabled(true)
                }
            }.navigationBarTitle("Select your cheese")

        }
    }
}

我想更改字体颜色,以使其更具可读性。

1 个答案:

答案 0 :(得分:-1)

获取该ForEach中的索引,并使用observables.selection对其进行检查。然后根据需要更改文本的颜色:

...
ForEach (0 ..< observables.Intact.endIndex, id: \.self) { index in
    Text(self.observables.Intact[$0]).tag($0)
        .foregroundColor(self.observables.selection == index ? .red : .blue )
}
...

Picker

如果您需要检测selection和&editMode来设置颜色,则可以结合使用。