Выбор цвета текста в DarkMode

Как установить светлый цвет текста в элементе управления Picker для темного режима iOS13

Для поддержки DARKMODE на IOS13 вам необходимо установить цвет текста на цвет, который система может изменить. Но в инспекторе нет возможности установить для текста средства выбора любой цвет.

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


person ManorBoy    schedule 10.09.2019    source источник
comment
Вы пробовали tintColor?   -  person Frank Schlegel    schedule 10.09.2019


Ответы (3)


Изменение цвета оттенка не имело значения, но я заметил, что шрифт отличается от всего остального - это заставило меня заподозрить, что шрифт где-то устанавливается, и я нашел ответ. В функциях представления выбора, которые являются частью поддержки делегата для элементов управления выбора, есть параметр шрифта, который включает его цвет.

person ManorBoy    schedule 11.09.2019

В раскадровке выберите Инспектор атрибутов/Вид/Оттенок/Цвет метки:

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

Это сделает шрифт:

  • белый, в темном режиме.
  • черный, в светлом режиме.
person Victor    schedule 21.04.2020

Я использовал UIColor.label для NSAttributedString.Key.foregroundColor.

func pickerView(_ pickerView: UIPickerView, attributedTitleForRow row: Int, forComponent component: Int) -> NSAttributedString? {
        if #available(iOS 13.0, *) {
            return NSAttributedString(string: "ABC", attributes: [NSAttributedString.Key.foregroundColor: UIColor.label])
        } else {
            // Fallback on earlier versions
            return NSAttributedString(string: "ABC", attributes: [NSAttributedString.Key.foregroundColor: UIColor.black])
        }
    }
person Vidu    schedule 02.03.2021