Как использовать модификатор отредактированный
В этом руководстве мы собираемся создать пользовательский интерфейс, похожий на Instagram, чтобы продемонстрировать функциональность отредактированного модификатора. Пользовательский интерфейс будет включать пост и один комментарий для простоты.
Комментарии
Во-первых, нам нужно создать структуру для данных комментария. Возможно, вам потребуется добавить переменную для изображения профиля каждого комментария. Для учебника мы сохраняем только имя пользователя и комментарий к нему.
Создайте представление с горизонтальным стеком внутри и добавьте два объединенных Text()
представления. Убедитесь, что тексты имеют начальное выравнивание и ширину экрана, используя .infinity
. Мы сделаем то же самое для большинства элементов пользовательского интерфейса, которые мы добавим дальше.
Сообщения
Создайте структуру для данных публикации. Добавьте к нему переменные, которые вы найдете ниже. Последняя переменная будет иметь тип CommentData
, который мы создали выше. Для более реалистичного подхода вам понадобится массив для первых нескольких комментариев, чтобы сократить время загрузки, а не только верхний комментарий.
Создайте структурный вид для сообщений. Добавьте переменную типа PostData
и VStack
внутри переменной тела. Внутри стека у нас будет три раздела: в верхней части сообщения, в самом сообщении и под сообщением.
В первом разделе добавьте Image()
и передайте ему изображение профиля, которое есть в нашей переменной postData
. Используйте модификатор .clipShape()
и придайте ему форму Circle()
, чтобы сделать нашу фотографию профиля круглой. В качестве имени пользователя вставьте Text()
и передайте ему имя пользователя, хранящееся в нашей переменной postData
.
Во втором разделе вставьте Image()
для фотографии публикации и ограничьте ее максимальную высоту. Используйте здесь модификатор .scaledToFit()
. Мы не хотим, чтобы изображение было обрезано с какой-либо стороны, в отличие от фото профиля.
Под постом мы хотим видеть количество лайков и комментариев. Добавьте изображение сердца в Image()
и количество лайков в Text()
. Затем проделайте то же самое с комментариями. Добавьте изображение с описанием комментариев, а затем количество комментариев. Для изображений вы можете использовать символы SF, которые предлагает Apple, как показано ниже:
В последнем разделе у нас будет описание сообщения и CommentView
. У нас есть переменная, которая хранит наш верхний комментарий внутри структуры PostData
, которую мы создали выше. Мы можем передать его CommentView
вот так:
ContentView
Чтобы продемонстрировать, над чем мы работали, мы создадим переменную PostData
. Заполните все параметры. Старайтесь не использовать однострочное предложение для описания и комментария, так как это повлияет на внешний вид заполнителей. Для поста я использовал изображение от sparklin_pink_lemonade. Выбранное изображение повлияет на размеры заполнителя из-за модификатора scaledToFit
. Цвет заполнителя будет цветом переднего плана, который вы выбираете для элементов пользовательского интерфейса.
Внутри тела добавьте ScrollView
с двумя PostViews
, разделенными разделителем. Добавьте модификатор .redacted(reason: .placeholder)
ко второму PostView
, затем запустите приложение, чтобы увидеть результаты.
Спасибо за прочтение!