Как я могу указать изображения темного / светлого режима для слайдера в пакете настроек iOS?

В моем наборе настроек есть слайдер, использующий Тип PSSliderSpecifier. Я использую клавиши MinimumValueImage и MaximumValueImage для отображения изображений слева / справа от ползунка. Однако, как видно на скриншотах ниже, эти изображения не настраиваются в зависимости от светового / темного режима.

Как я могу указать другое изображение, которое будет использоваться, или другой цвет оттенка в светлом / темном режиме? Кажется, что все ползунки в настройках Apple настраиваются в зависимости от режима, поэтому кажется, что способ должен быть, но я не вижу никакой документации о том, как это сделать.

Легкий режим

Легкий режим

Темный режим

Темный режим


person Chris Vasselli    schedule 03.12.2019    source источник
comment
Можете ли вы использовать изображения в каталогах активов? Тогда, возможно, установка режима рендеринга на изображение шаблона сработает.   -  person Frank Schlegel    schedule 03.12.2019
comment
Да, это хорошая идея. Я пробовал как ссылаться на каталог ресурсов в моем основном пакете приложений, так и на один, встроенный в сам пакет настроек. Я пробовал кучу разных, казалось бы, логичных способов ссылаться на эти изображения, но, похоже, ни один из них не работает. Единственный способ получить изображение из каталога активов - это указать путь непосредственно к самому файлу изображения (например, SettingsImages.xcassets/Slow.imageset/Turtle.png), который игнорирует сами метаданные всего каталога активов, поэтому на самом деле ничего не выполняет. . знак равно   -  person Chris Vasselli    schedule 03.12.2019
comment
О, интересно ... При всех недостатках iOS 13 я не удивлюсь, если они просто забудут об этих изображениях ...   -  person Frank Schlegel    schedule 03.12.2019
comment
Начинаю думать об этом. Просматривая приложения на своем телефоне, кажется, что очень немногие люди ими пользуются.   -  person Chris Vasselli    schedule 03.12.2019
comment
Может быть, есть волшебный префикс файла, такой как @2x или ~ipad, который работает в темном режиме? Но не нашел ...   -  person Frank Schlegel    schedule 03.12.2019


Ответы (1)


хорошо. сначала вы можете обнаружить темный режим

override func touchesBegan(_ touches: Set<UITouch>, with event: UIEvent?) {
    if traitCollection.userInterfaceStyle == .light {
        print("Light mode")
    } else {
        print("Dark mode")
    }
}

и вы можете настроить слайдер с его свойствами

 slider.minimumTrackTintColor = .green
 slider.maximumTrackTintColor = .red
 slider.thumbTintColor = .black

и значки для громкости, которые вы можете изменить при обнаружении любого userInterfaceStyle

person Andres Gomez    schedule 03.12.2019
comment
Извините, если было непонятно, но это для слайдера в наборе настроек. Итак, настройки, которые появляются в приложении «Настройки». У меня нет возможности запускать какой-либо код в этом контексте. - person Chris Vasselli; 03.12.2019