Игнорировать усиление контрастности цветовой схемы для SwiftUI Color или View - PullRequest
0 голосов
/ 07 марта 2020

Параметры настроек в моем приложении оформлены в виде значка на цветном фоне solid и текстовой метки рядом с ними, аналогично элементам в iOS приложении настроек Apple:

HStack(alignment: .center, spacing: 0) {
    Image(...)
    .foregroundColor(.white)
    .frame(width: 28, height: 28, alignment: .center)
    .background(
        RoundedRectangle(cornerRadius: 6, style: .continuous)
        .fill(Color.blue)) // Color may be a property instead, simplified here.
    .accessibility(hidden: true)

    Text(title)
        .font(.system(
            size: 16,
            weight: .medium,
            design: .rounded))
        .padding(.leading)
}

Тем не менее, я заметил, что цвет фона ( SwiftUI Color ) для моих представлений значков изменяется, когда включена системная опция «Увеличение контрастности», в то время как цвет фона значков настроек Apple - нет. Например, Color.orange больше похоже на красный цвет, когда включена функция «Увеличить контраст».

Поэтому я бы хотел игнорировать настройку контрастности текущей цветовой схемы (ColorSchemeContrast значение среды *) 1011 *) если он установлен на .increased, только для цвета фона моего представления значков.

К сожалению, использование модификатора среды выдает ошибку, поскольку .colorSchemeContrast не является записываемым свойством: .environment(\.colorSchemeContrast, .standard) , Это аналогично задокументировано Apple: «Ваше приложение не может переопределить выбор пользователя.».

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

Есть ли другой способ обойти эту проблему?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...