SwiftUI - доступ к семантическим цветам iOS 13 - PullRequest
1 голос
/ 14 июня 2019

В iOS 13 представлены семантические цвета: способ указать, в чем заключается цель цвета, а не его фактическая ценность.Это позволяет цвету автоматически адаптироваться при включении темного режима.

В UIKit эти цвета могут быть легко доступны через статические элементы на UIColor (например, UIColor.label(), UIColor.secondaryLabel() и т. Д.).Обширный список всех доступных семантических цветов можно найти на этой странице документации .

Однако тип Color SwiftUI не имеет эквивалентных статических членов.Следовательно, это было бы неверно:

// Error: Type 'Color?' has no member 'secondaryLabel'
var body: some View {

    Text("Hello World!")
        .color(.secondaryLabel)

}

Как мне получить доступ к этим семантическим цветам в SwiftUI?

1 Ответ

1 голос
/ 14 июня 2019

Хотя Color не имеет статических членов для этих семантических цветов, в соответствии с документацией , Color имеет инициализатор, который позволяет указать AppearanceColorName.

Однако я говорю «согласно документации», потому что на данный момент этот инициализатор кажется недоступным в XCode. В следующей бета-версии, когда этот инициализатор станет доступным, его можно использовать так:

var body: some View {

    Text("Hello World!")
        .color(Color(apperanceName: .secondaryLabel))

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