В основе iOS-приложения, разработанного с помощью SwiftUI, лежит набор представлений, которые, по сути, являются строительными блоками, формирующими пользовательский интерфейс. Здесь мы рассмотрим некоторые основы того, как работают представления в SwiftUI.
Что такое представление (View)?
В SwiftUI представление — обертка свойств, которая обеспечивает механизм создания и изменения представлений в ответ на изменения состояния или данных. Представление может быть кнопкой, текстовой меткой или любым другим элементом, представляющим пользовательский интерфейс. Представления обычно объединяются в иерархию, образующую экран.
Представления могут быть вложены друг в друга для создания иерархии, определяющей структуру пользовательского интерфейса. Корневое представление является точкой входа в приложение и, как правило, занимает вершину иерархии.
Каждое представление имеет родителя и может иметь дочерние элементы. Далее мы рассмотрим, как построить простую иерархию с родителем и двумя дочерними элементами.
Построение иерархии представлений
Сначала добавьте это изображение в файл Assets.xcassets:
Затем замените свой ContentView
на следующий:
struct ContentView: View { var body: some View { VStack { Image("Kodeco") Text("Welcome to the Kodeco SwiftUI cookbook!") } } }
После этого в окне предварительного просмотра должно появиться следующее изображение:
В приведенном выше коде мы определяем структуру ContentView
, соответствующую протоколу View
. Внутри свойства body
мы определяем представление VStack
, которое представляет собой представление, располагающее свои вложенные представления в виде вертикального стека. В данном примере VStack
содержит два вложенных представления (представление Text
и представление Image
), расположенных вертикально друг над другом.
Обратите внимание, что свойство body
использует синтаксис замыкания, в котором задается содержимое иерархии представлений. Возвращаемое значение body
должно быть одним представлением, но это представление может содержать множество вложенных представлений, каждое из которых может содержать еще больше вложенных представлений, и так далее.
Стремление к плоской иерархии может повысить простоту и удобство сопровождения. Для сложных иерархий представлений следует использовать различные экземпляры VStack
, HStack
или ZStack
для логической группировки и визуального разделения частей пользовательского интерфейса. (Примечание: Возможно, вас интересует ограничение на количество вложенных представлений; мы затронем эту тему в одном из следующих разделов).
Более подробную информацию можно найти в разделе «Представления и модификаторы в SwiftUI» этого руководства.
Предложите исправление: выделите текст и нажмите Ctrl+ Enter
← Предыдущая статья: Создание и предварительный просмотр представления SwiftUI