我在几个项目中都有一个标准的UIDatePicker。该选择器在iPhone上以及在光照模式下的iPad上都可以正常工作。当iPad处于黑暗模式时,不会显示整个选择器(背景和文本)。更改背景和前景色无效。这可能是Apple的错误,但我希望有人能够解决。我已经viewed this question,但答案还不够好-基本上仅使用灯光模式。
供参考,选择器代码为:
@IBOutlet var datePicker: UIDatePicker? = UIDatePicker()
//or @IBOutlet weak var datePicker: UIDatePicker!
override func viewDidLoad() {
super.viewDidLoad()
let defaults: UserDefaults = UserDefaults.standard
let tempDate = defaults.value(forKey: "selectedDate") as! Date?
let calendar: NSCalendar = NSCalendar(calendarIdentifier: .gregorian)!
calendar.timeZone = NSTimeZone(name: "UTC")! as TimeZone
let components = calendar.components([.year, .month, .day], from: tempDate! as Date)
defaultDate = calendar.date(from: components as DateComponents)! as Date?
self.datePicker?.date = defaultDate as Date
}
/*
override func viewWillAppear(_ animated: Bool) {
super.viewWillAppear(true)
print(#function)
let defaults: UserDefaults = UserDefaults.standard
let tempDate = defaults.value(forKey: "selectedDate") as! Date?
let calendar: NSCalendar = NSCalendar(calendarIdentifier: .gregorian)!
calendar.timeZone = NSTimeZone(name: "UTC")! as TimeZone
let components = calendar.components([.year, .month, .day], from: tempDate! as Date)
defaultDate = calendar.date(from: components as DateComponents)! as Date?
self.datePicker?.date = defaultDate as Date
}
*/
@IBAction func datePickerAction(sender: AnyObject) {
let dateFormatter = DateFormatter()
dateFormatter.dateFormat = "EE. MMMM dd, yyyy"
dateFormatter.timeZone = NSTimeZone.default
dateString = dateFormatter.string(from: datePicker!.date)
selectedDate = datePicker?.date
selectedDateLabel.text = dateString
print(#function, "selected date: ", selectedDate!)
}