Какой основной цвет в SwiftUI?

SwiftUI — это новый фреймворк пользовательского интерфейса Apple, представленный в iOS 13. Он обеспечивает декларативный способ создания пользовательских интерфейсов для платформ Apple с использованием простого, читаемого кода. Одной из ключевых особенностей SwiftUI является акцент на цвете и стиле.

Цвет по умолчанию

Основной цвет по умолчанию, используемый в SwiftUI, называется «Default». Это относится к системному цвету оттенка по умолчанию, который автоматически адаптируется в зависимости от выбранного пользователем внешнего вида (светлый или темный режим). Вот обзор цвета SwiftUI по умолчанию:

  • Это динамический цвет, который автоматически адаптируется к светлому или темному режиму.
  • В светлом режиме — синий.
  • В темном режиме — зеленый.
  • Он используется для подкрашивания интерактивных элементов, таких как ссылки, выделения, выбранные строки и т. д.
  • Apple называет его «accentColor» в своей документации API.

Итак, вкратце, основной цвет по умолчанию в SwiftUI называется просто «Default» и он динамически меняется в соответствии с внешним видом системы. Это позволяет интерфейсам SwiftUI автоматически адаптировать свой внешний вид в зависимости от предпочтений темы пользователя.

Настройка цвета по умолчанию

Хотя цвет SwiftUI по умолчанию полезен для адаптивности, вы можете настроить его в соответствии с брендингом вашего приложения. SwiftUI позволяет легко задать пользовательский оттенок по умолчанию.

В SwiftUI есть несколько способов настроить оттенок по умолчанию:

  1. Установите accentColor для отдельных представлений или контейнеров.
  2. Установите глобальный 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 предоставляет надежную и гибкую систему для работы с цветом в интерфейсе вашего приложения. Вот некоторые основные моменты:

  • Цвет акцента по умолчанию, который динамически адаптируется к светлому или темному режиму.
  • Семантические цвета, такие как .primary и .accentColor, которые имеют определенные значения.
  • Настройка пользовательских глобальных или специфичных для представления цветов по умолчанию.
  • Динамические цвета, которые автоматически меняются в зависимости от внешних факторов.

Объединив эти возможности, вы можете создать последовательно фирменный, адаптивный интерфейс, который отлично смотрится в любом контексте. А SwiftUI обрабатывает большую часть сложности за кулисами, делая работу с цветом простой и декларативной.