Настройте цвет фона и текста в UIDatePicker в iOS 12

В предыдущих версиях iOS я мог изменить цвет текста и фона, используя что-то вроде следующего:

let datePicker = UIDatePicker()
datePicker.datePickerMode = UIDatePickerMode.date
datePicker.setValue(UIColor.white, forKey: "textColor")
datePicker.backgroundColor = UIColor.black.withAlphaComponent(0.6)

Это больше не работает в Xcode 10/iOS 12. Средство выбора даты отображается с цветами по умолчанию. Кто-нибудь нашел решение для настройки цвета текста и фона в iOS 12?


person Sean Kladek    schedule 25.10.2018    source источник


Ответы (1)


Кажется, что-то сбрасывает эти значения между тем, когда я их устанавливаю, и когда отображается представление. Я смог решить эту проблему, создав подкласс UIDatePicker и установив значения в layoutSubviews(). Может быть более эффективное место для установки цветов, но это работает для меня на данный момент.

class DatePicker: UIDatePicker {
    override func layoutSubviews() {
        super.layoutSubviews()

        backgroundColor = UIColor.black.withAlphaComponent(0.6)
        setValue(false, forKey: "highlightsToday")
        setValue(UIColor.white, forKey: "textColor")
    }
}
person Sean Kladek    schedule 25.10.2018