Как переопределить iOS стиль темного режима для указателя даты - PullRequest
0 голосов
/ 02 марта 2020

enter image description here

Как вы можете видеть, выбранное значение в окне выбора даты - белое. Если я изменю дату, она не станет видимой. Это скриншот iOS темного режима. Есть ли способ переопределить стиль по умолчанию для этого. Я попробовал следующее:

.date-picker {
   color: #000000;

   .ns-dark & {
     color: #000000;
   }
}

enter image description here

Вот как это выглядит, когда фон черный

Ответы [ 2 ]

1 голос
/ 03 марта 2020

Используйте свойство UIUserInterfaceStyle overrideUserInterfaceStyle UIViewController для изменения стиля интерфейса контроллера.

class TestViewController: UIViewController {

    @IBOutlet weak var datePicker: UIDatePicker!

    override func viewDidLoad() {
        super.viewDidLoad()

        if #available(iOS 13.0, *) {
            overrideUserInterfaceStyle = .dark
            datePicker.backgroundColor = .black
        } else {
            datePicker.backgroundColor = .white
        }
    }
}
0 голосов
/ 08 марта 2020

Проблема заключалась в том, что я не мог переопределить цвет Datepicker. Я также не смог переопределить цвет фона модального. Мне нужно было добавить тег <page> к моему модальному. Там я могу добавить класс, чтобы я мог изменить цвет фона в темном режиме. Так это выглядит примерно так:

<Page class="background-color-modal">
    <DockLayout class="modal">
          <FlexboxLayout class="timeDateDetails">
               <time-modal :selected-time="selectedTime" 
                           :time="$props.time" @updateTime="updateTime"/>
          </FlexboxLayout>
     </DockLayout>
</Page>

<style lang="scss" scoped>

    .background-color-modal {
        background-color: $white;
        color: $dark;

        .ns-dark & {
            background-color: $dark-dark;
            color: $dark-white
        }
    }

    .modal {
        background-color: $white;
        color: $dark;

        .ns-dark & {
            background-color: $dark-dark;
            color: $dark-white
        }
    }
</style>

...