Подтвердить что ты не робот

Изменение цвета текста datepicker

Можно ли изменить цвет текста datepicker в iOS8? У меня это невозможно в iOS7 и ранее, что-то изменилось в 8-й версии?

Например, я нашел модифицированную подборку в Yahoo Weather!

enter image description here

4b9b3361

Ответ 1

Найденное решение в комментариях в stackoverflow. Если вам нужно просто измените цвет текста на свой и назначьте этот подкласс для вашего выбора. Для whiteColor работает как волшебство.

Только минус я обнаружил, что цвет двух строк выбранного номера по-прежнему серый.

class ColoredDatePicker: UIDatePicker {
    var changed = false
    override func addSubview(view: UIView) {
        if !changed {
            changed = true
            self.setValue(UIColor.whiteColor(), forKey: "textColor")
        }
        super.addSubview(view)
    }
}

Ответ 2

Все еще работает, Swift 4 Update

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

Это работает для меня.

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

Ответ 3

Я изменил цвет текста через инспектор (см. ниже)

введите описание изображения здесь

Ответ 4

Если вы не хотите, чтобы выделенный текст был черным при запуске, вам нужно установить как textColor, так и highlightsToday:

введите описание изображения здесь

Ответ 5

Он работает с iOS 10, только если вы установили оба свойства.

datePicker.setValue(UIColor.white, forKeyPath: "textColor")
datePicker.setValue(false, forKeyPath: "highlightsToday")

Ответ 6

Решение проблемы с черным "Today" с помощьюlightsToday, установленной в "false", имеет побочный эффект - у него больше нет ярлыка "Today" в списке.

Я нашел другое решение, которое прекрасно работает без каких-либо побочных эффектов: Установить цвет текста и шрифт для UIDatePicker в iOS8/Swift

datePicker.setValue(UIColor.whiteColor(), forKeyPath: "textColor")
datePicker.datePickerMode = .CountDownTimer
datePicker.datePickerMode = .DateAndTime //or whatever your original mode was

Похоже, грязный хак, но у нас есть на данный момент: изменение datePickerMode перерисовывает его правильно. Так что просто установите его на что-то отличное от желаемого режима и измените его обратно на оригинальный.