SwiftUI — это новый фреймворк пользовательского интерфейса Apple, представленный в iOS 13. Он обеспечивает декларативный способ создания пользовательских интерфейсов для платформ Apple с использованием простого, читаемого кода. Одной из ключевых особенностей SwiftUI является акцент на цвете и стиле.
Основной цвет по умолчанию, используемый в SwiftUI, называется «Default». Это относится к системному цвету оттенка по умолчанию, который автоматически адаптируется в зависимости от выбранного пользователем внешнего вида (светлый или темный режим). Вот обзор цвета SwiftUI по умолчанию:
Итак, вкратце, основной цвет по умолчанию в SwiftUI называется просто «Default» и он динамически меняется в соответствии с внешним видом системы. Это позволяет интерфейсам SwiftUI автоматически адаптировать свой внешний вид в зависимости от предпочтений темы пользователя.
Хотя цвет SwiftUI по умолчанию полезен для адаптивности, вы можете настроить его в соответствии с брендингом вашего приложения. SwiftUI позволяет легко задать пользовательский оттенок по умолчанию.
В SwiftUI есть несколько способов настроить оттенок по умолчанию:
accentColor для отдельных представлений или контейнеров.accentColor в среде SwiftUI.Например, чтобы задать пользовательский красный цвет по умолчанию только для одного представления, вы должны использовать:
Text("Hello") .accentColor(.red) А чтобы задать глобальный акцентный цвет по умолчанию для всего приложения на зеленый, вы должны использовать:
@main struct MyApp: App { var body: some Scene { WindowGroup { ContentView() } .accentColor(.green) // глобальный акцентный цвет } } Это делает его очень гибким для либо измените цвет на всем сайте, либо только для отдельных представлений. Настройка цвета SwiftUI по умолчанию помогает убедиться, что ваше приложение имеет собственный последовательный фирменный вид.
Помимо акцентного цвета по умолчанию, SwiftUI также определяет набор названий семантических цветов, которые имеют определенные значения:
| Семантический цвет | Описание |
|---|---|
| .primary | Основной цвет бренда для вашего приложения. По умолчанию это синий в светлом режиме. |
| .secondary | Вторичный цвет для вашего бренда. По умолчанию — серый. |
| .accentColor | Цвет для интерактивных элементов. Это динамически адаптируется к светлому/темному режиму. |
| .red | Стандартный красный цвет. |
| .green | Стандартный зеленый цвет. |
| .blue | Стандартный синий цвет. |
Эти семантические названия цветов позволяют быстро использовать общие цвета, которые адаптируются к светлому и темному режимам. И вы можете переопределить любое из значений по умолчанию, просто назначив это семантическое имя цвета другому цвету.
Например, чтобы использовать пользовательский основной цвет вместо синего по умолчанию:
Text("Hello") .foregroundColor(.primary) @main struct MyApp: App { var body: some Scene { WindowGroup { ContentView() } .primaryColor(.purple) } } Семантические цвета предоставляют простой способ использовать общие значения, такие как «цвет бренда» или «цвет акцента», без необходимости каждый раз жестко кодировать определенные цвета.
Одной из самых мощных функций системы цветов SwiftUI является то, что цвета автоматически адаптируются на основе внешних факторов, таких как светлый/темный режим, настройки доступности и т. д. Это делается с помощью динамических цветов.
Например, вот как определить пользовательский цвет, который динамически меняется в зависимости от текущего внешнего вида:
let myColor = Color { switch UITraitCollection.current.userInterfaceStyle { case .dark: return .blue default: return .red } } Теперь любое представление, использующее этот myColor, будет автоматически менять цвет с красного на синий в зависимости от темного режима. Это позволяет легко иметь разные версии цветов без необходимости вручную проверять тему везде.
Некоторые другие способы использования динамических цветов в SwiftUI включают:
.accentColor по умолчанию, который адаптируется к светлому/темному режиму..colorScheme, для условного выбора цветов.В целом динамические цвета помогают убедиться, что ваше приложение SwiftUI отлично выглядит при любых настройках, сводя к минимуму повторяющийся код для обработки различных контекстов. Система автоматически выполняет тяжелую работу.
SwiftUI предоставляет надежную и гибкую систему для работы с цветом в интерфейсе вашего приложения. Вот некоторые основные моменты:
Объединив эти возможности, вы можете создать последовательно фирменный, адаптивный интерфейс, который отлично смотрится в любом контексте. А SwiftUI обрабатывает большую часть сложности за кулисами, делая работу с цветом простой и декларативной.