Сократите объем кода, создав многоразовое представление контейнера

View Builder

@ViewBuilder - это конструктор функций, который строит представления из замыканий. Он позволяет передавать несколько представлений в определенное представление. С @ViewBuilder вы можете настроить свои постоянные элементы и модификаторы в приложении, а затем только добавить к нему непостоянный контент.

В приведенном ниже примере мы создаем контейнер типа View, который принимает некоторое содержимое типа View. Внутри переменной body вы можете видеть, что мы добавили модификаторы к переменной содержимого. Модификаторы будут применяться ко всему контенту, который вы передадите в это представление контейнера.

Внутри ContentView мы можем добавить наш контейнер. Вы можете добавить в этот контейнер нужные вам элементы пользовательского интерфейса.

Теперь вы можете использовать созданный вами контейнер со всем содержимым, имеющим похожие модификаторы.

Пример

В приведенном ниже примере я создал контейнер, который использует прямоугольник с закругленными углами в качестве фона для нашего контента. Под контентом у меня две кнопки. Обратите внимание на модификаторы, которые будут применены к переменной содержимого. Контент имеет модификатор шрифта размером 20, синий цвет переднего плана и отступы со всех сторон.

Чтобы переопределить модификаторы, вам нужно добавить модификаторы к содержимому внутри замыкания со значениями, которые вы хотите, чтобы они имели. Ознакомьтесь с приведенными ниже фрагментами кода, которые показывают, как представление Container используется в нашем ContentView.