iOS14 - 如何在 UIKit 中更改 UIDatePicker 的文本颜色?
iOS14 - How to change textColor of UIDatePicker in UIKit?
使用 iOS14.0.1, Swift5.3, Xcode12.0.1,
我尝试在 iOS14 中更改 UIDatePicker
的 textColor
并使用 UIKit。
我读到 here 您需要使用以下方法:
let myDatePicker = UIDatePicker()
myDatePicker.tintColor = .white
我还尝试了以下方法(但这会使我的应用程序在 iOS14 下崩溃):
myDatePicker.setValue(UIColor.white, forKeyPath: "textColor")
我也试过了(也没有成功):
UILabel.appearance(whenContainedInInstancesOf: [UIDatePicker.self]).textColor = UIColor.white
在轻量级模式下,我的 none 试验有效(从截图摘录中可以看出):
我需要做什么才能在 UIDatePicker
中获得白色文本?
我使用 pickerView delegate
方法更改选择器视图颜色。您可以通过添加以下委托方法来添加此功能:UIPickerViewDelegate, UIPickerViewDataSource
func pickerView(_ pickerView: UIPickerView, viewForRow row: Int, forComponent component: Int, reusing view: UIView?) -> UIView {
// change your picker view textColor etc. in here..
}
试试这个,添加下面的扩展名:
extension UIDatePicker {
var textColor: UIColor? {
set {
setValue(newValue, forKeyPath: "textColor")
}
get {
return value(forKeyPath: "textColor") as? UIColor
}
}
}
现在在 viewDidLoad 调用中:
myDatePicker.textColor = .yourColor
在其他选择器 属性 之后调用它,即:
myDatePicker.preferredDatePickerStyle = .wheels
myDatePicker.addTarget(self, action: #selector(handleDatePicker), for: .valueChanged)
myDatePicker.datePickerMode = .dateAndTime
myDatePicker.timeZone = NSTimeZone.local
myDatePicker.backgroundColor = .black
myDatePicker.setValue(false, forKey: "highlightsToday")
myDatePicker.textColor = .yourColor // here
如果你想要 highlightsToday 将相对选择器值设置为 true:
myDatePicker.setValue(true, forKey: "highlightsToday")
这是结果:
是的,它有效!但是,属性 preferredDatePickerStyle = .wheels
必须在 textColor = .yourColor
之前设置,否则属性 textColor
可能永远不会受到影响。
使用 iOS14.0.1, Swift5.3, Xcode12.0.1,
我尝试在 iOS14 中更改 UIDatePicker
的 textColor
并使用 UIKit。
我读到 here 您需要使用以下方法:
let myDatePicker = UIDatePicker()
myDatePicker.tintColor = .white
我还尝试了以下方法(但这会使我的应用程序在 iOS14 下崩溃):
myDatePicker.setValue(UIColor.white, forKeyPath: "textColor")
我也试过了(也没有成功):
UILabel.appearance(whenContainedInInstancesOf: [UIDatePicker.self]).textColor = UIColor.white
在轻量级模式下,我的 none 试验有效(从截图摘录中可以看出):
我需要做什么才能在 UIDatePicker
中获得白色文本?
我使用 pickerView delegate
方法更改选择器视图颜色。您可以通过添加以下委托方法来添加此功能:UIPickerViewDelegate, UIPickerViewDataSource
func pickerView(_ pickerView: UIPickerView, viewForRow row: Int, forComponent component: Int, reusing view: UIView?) -> UIView {
// change your picker view textColor etc. in here..
}
试试这个,添加下面的扩展名:
extension UIDatePicker {
var textColor: UIColor? {
set {
setValue(newValue, forKeyPath: "textColor")
}
get {
return value(forKeyPath: "textColor") as? UIColor
}
}
}
现在在 viewDidLoad 调用中:
myDatePicker.textColor = .yourColor
在其他选择器 属性 之后调用它,即:
myDatePicker.preferredDatePickerStyle = .wheels
myDatePicker.addTarget(self, action: #selector(handleDatePicker), for: .valueChanged)
myDatePicker.datePickerMode = .dateAndTime
myDatePicker.timeZone = NSTimeZone.local
myDatePicker.backgroundColor = .black
myDatePicker.setValue(false, forKey: "highlightsToday")
myDatePicker.textColor = .yourColor // here
如果你想要 highlightsToday 将相对选择器值设置为 true:
myDatePicker.setValue(true, forKey: "highlightsToday")
这是结果:
是的,它有效!但是,属性 preferredDatePickerStyle = .wheels
必须在 textColor = .yourColor
之前设置,否则属性 textColor
可能永远不会受到影响。