如何在 SwiftUI 中更改 DatePicker 的文本颜色?

bab*_*bak 2 datepicker swiftui

我看到了这个问题,但它在 SwiftUI 中不起作用。我使用了 .forgroundColor 和 .accentColor 但它们不会改变文本的颜色。

Pra*_*hwa 17

使用.colorInvert().colorMultiply(.white)会将文本颜色更改为白色,但在设备处于深色模式时不起作用。相反,试试这个:

DatePicker("Date", selection: $selection)
    .colorScheme(.dark) // or .light to get black text
Run Code Online (Sandbox Code Playgroud)


小智 8

我只是简单地设置了重音颜色,它就可以工作了。

@State private var date = Date()
DatePicker("Select a date",
           selection: $date, in: ...Date(), 
           displayedComponents: .date)
        .labelsHidden()
        .accentColor(.orange)
Run Code Online (Sandbox Code Playgroud)

  • 对于“.compact”日期选择器样式,此强调色在活动时显示,但在点击控件之前文本为黑色。 (5认同)
  • 这不应该是公认的答案。这仅对重音按钮进行着色,例如 <> 箭头和所选日期,其他所有内容均不受影响。 (2认同)

Chr*_*ris 7

尝试这个:

var body: some View {
        Group {

            DatePicker(selection: $selected) {
                Text("Date")
            }

        .colorInvert()
            .colorMultiply(Color.blue)
        }
    }
Run Code Online (Sandbox Code Playgroud)

在此处输入图片说明

  • @UserWithWeiredNumber。没有人说它适用于所有控件。没有人说过——每个开发者都知道——苹果可以改变一些事情,然后我们也必须改变一些事情。但有些人只看到“忧”。他要求更改日期选择器的颜色 - 他现在就在寻找解决方案 - 而不是 100 年后。这就是我的解决方案提供的。仅此而已。 (2认同)

小智 5

如果您使用背景颜色,您可以这样做以使文本在浅色或深色模式下显示为白色

struct PickerDate: View {
    @Environment(\.colorScheme) var colorScheme
    @State var date: Date
    var body: some View {
        VStack {
            DatePicker("Record Date", selection: $date, in: ...Date(), displayedComponents: .date)
                .labelsHidden()
                .colorMultiply(colorScheme == .dark ? .black : .white)
                .colorInvert()
            }
        }
    }
}
Run Code Online (Sandbox Code Playgroud)