Изменить строки выбора даты и цвет шрифта - PullRequest
2 голосов
/ 05 марта 2019

Кто-нибудь знает, как изменить строки и цвет шрифта UIDatePicker и избегать использования частного Apple API? Я нашел это, но это очень грязное решение:

        datePicker.setValue(UIColor.white, forKey: "textColor")

        for subview in self.datePicker.subviews {

            if subview.frame.height <= 5 {

                subview.backgroundColor = UIColor.white
                subview.tintColor = UIColor.white
                subview.layer.borderColor = UIColor.white.cgColor
                subview.layer.borderWidth = 0.5            }
        }

        if let pickerView = self.datePicker.subviews.first {

            for subview in pickerView.subviews {

                if subview.frame.height <= 5 {

                    subview.backgroundColor = UIColor.white
                    subview.tintColor = UIColor.white
                    subview.layer.borderColor = UIColor.white.cgColor
                    subview.layer.borderWidth = 0.5
                }
            }
            self.datePicker.setValue(UIColor.white, forKey: "textColor")
        }

Ответы [ 2 ]

0 голосов
/ 05 марта 2019

Для изменения цвета выделенного прямоугольника DatePickerView вы можете сделать это:

datePicker.subviews[0].subviews[1].layer.borderColor = UIColor.red.cgColor //any color you want
datePicker.subviews[0].subviews[1].layer.borderWidth = 1
datePicker.subviews[0].subviews[2].layer.borderColor = UIColor.red.cgColor //any color you want
datePicker.subviews[0].subviews[2].layer.borderWidth = 1

subviews[1] - это верхняя граница , а subviews[2] - граница ниже .
Также вы должны установить borderWidth, чтобы сделать его видимым

А для задания цвета текста в целом DatePicker вы можете сделать это:

datePicker.setValue(UIColor.red, forKey: "textColor")
0 голосов
/ 05 марта 2019

Попробуйте это:

enter image description here

ИЛИ по коду:

datePicker.setValue(UIColor.red, forKeyPath: "textColor")
...