难以找到在iOS 13暗模式下更改所选日期的文本颜色的解决方案。
我知道如何使用代码更改UIPicker视图的文本颜色
InputStream in = socket.getInputStream();
String str = readAll(in);
in.close();
或使用用户定义的运行时属性。但是,无法为iOS 13深色模式更改所选日期颜色。在背景为白色和黑色为文本的情况下,我的日期选择器视图如下所示:
因此,如果将文本颜色更改为黑色,则不会更改所选日期文本颜色。它将所有其他文本颜色更改为黑色;但不是所选的。所选的一个保持白色,这是黑暗模式的默认设置。
答案 0 :(得分:6)
您可以在self.window
内设置AppDelegate.m
并像这样覆盖接口样式
if (@available(iOS 13, *)) {
self.window.overrideUserInterfaceStyle = UIUserInterfaceStyleLight;
}
return YES;
快速5。*
if #available(iOS 13.0, *) {
self.window?.overrideUserInterfaceStyle = .light
}
答案 1 :(得分:5)
我找到了可以解决问题的方法。如果我将“ hightlightsToday”颜色标记为false,则所选文本将以您设置代码的颜色显示。
self.datePicker.setValue(false, forKey: "highlightsToday")
但是,如果我想用其他颜色突出显示我选择的日期文本颜色;在那种情况下,不确定我必须更改哪个键值。因此,如果有人知道如何更改暗模式下的选定日期文本颜色,我将保留这个问题。
答案 2 :(得分:1)
您可以为UIDatePicker编写扩展名,然后将datePicker文本的textColor设置为UIColor.label,它将根据界面模式(亮/暗模式)动态更改。
extension UIDatePicker {
var textColor: UIColor? {
set {
setValue(newValue, forKeyPath: "textColor")
}
get {
return value(forKeyPath: "textColor") as? UIColor
}
}
var highlightsToday : Bool? {
set {
setValue(newValue, forKeyPath: "highlightsToday")
}
get {
return value(forKey: "highlightsToday") as? Bool
}
}
}
此后,您可以设置textColor值,例如:-
let datePicker = UIDatePicker()
datePicker.textColor = UIColor.label
答案 3 :(得分:0)
您可以通过Info.plist文件解决此问题。在Info.plist文件中添加“ UIUserInterfaceStyle”键和“ Light”值。
参考:https://github.com/xgfe/react-native-datepicker/issues/365#issuecomment-532875809