Системный сгруппированный цвет фона на Ma c Catalyst неверен для Light Mode - PullRequest
2 голосов
/ 11 марта 2020

Я пытаюсь воссоздать тот же внешний вид, что и приложение настроек на iOS в приложении Catalyst.

Я получил SplitViewController с TableViewController, настроенным как Grouped as Master, и как TableViewController set как вкладка, сгруппированная как деталь.

Для табличных представлений я установил цвет фона для System Grouped Background Color, а для ячеек табличного представления я установил цвет фона для Secondary System Grouped Background Color.

На всех устройствах все выглядит как положено (iOS / Ma c), за исключением легкого режима на Ma c. Похоже, цвета перевернуты. Табличное представление должно иметь светло-серый цвет фона, а ячейка табличного представления должна иметь белый цвет фона, но все наоборот.

Это поведение по умолчанию Ma c или что-то не так?

Я создал пример проекта на GitHub:
https://github.com/robertveringa89/systemgroupedbackgroundcolor

Ответы [ 2 ]

0 голосов
/ 28 марта 2020

Я столкнулся с той же проблемой. Я не уверен, является ли это ошибкой или странным дизайнерским решением со стороны Apple. Тем не менее, довольно простой обходной путь - создать пользовательские цвета в каталоге ресурсов, которые используют цвета по умолчанию на iPhone и iPad, но настраиваемые цвета на macOS Catalyst.

Просто создайте цвет, например aGroupedBackgroundColor , убедитесь, что в разделе «Устройства» выбраны «Универсальный, iPad, Ma c Catalyst» и установите для внешнего вида значение «Любой, темный»

Затем вы можете назначить системные цвета всем, кроме macOS Катализатор светлый внешний вид. Например, для фона таблицы назначьте «groupTableViewBackgroundColor» для всех светлых и темных изображений, за исключением отображения Ma c Catalyst Light, назначьте «System Grey 6 Color».

Затем вы можете назначить ваш aGroupedBackgroundColor в конструкторе интерфейса для фонов вашего представления в виде таблицы или ссылки на него в коде, например, так: UIColor(named: "aGroupedBackgroundColor")

Вот пример каталога ресурсов изображения

0 голосов
/ 21 марта 2020

Кажется, что это ошибка или предполагаемое поведение в macOS. Я предполагаю, что это ошибка. Но вы можете легко определить свои собственные цвета с правильными цветами в расширении UIColor:

extension UIColor {
    static var systemGroupedBackground2: UIColor {
        UITraitCollection.current.userInterfaceStyle == .light ?
            UIColor(hex: "F2F2F7FF") :
            UIColor(hex: "000000FF")
    }

    static var secondarySystemGroupedBackground2: UIColor {
        UITraitCollection.current.userInterfaceStyle == .light ?
            UIColor(hex: "FFFFFFFF") :
            UIColor(hex: "1C1C1EFF")
    }
}
...