Connect with us

Разработка

Поваренная книга SwiftUI: обрезка представлений

Обрезку вида можно сравнить с использованием формы для печенья. Представление — это тесто, а форма, которую вы применяете — это резак.

Опубликовано

/

     
     

Хотелось ли вам когда-нибудь создать View с уникальной формой, например, в виде закругленного прямоугольника или круга? SwiftUI предоставляет простой способ добиться этого с помощью обрезки (clipping) представления.

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

Для того, чтобы обрезать виды, в SwiftUI применяется модификатор clipShape. Например, предположим, что у вас есть прямоугольный вид, и вы хотите сделать его округлым. Вот как это можно сделать:

Предварительный просмотр для этого представления должен выглядеть следующим образом:

Поваренная книга SwiftUI: обрезка представлений

Пример обрезания формы представления в SwiftUI.

В этом примере имеется представление Text, в котором отображается текст «Hello, ClipShape!». Применяются различные модификаторы, чтобы придать тексту стиль, установить синий фон и сделать текст белым.

Интересным является модификатор .clipShape(RoundedRectangle(cornerRadius: 20)). Это привязывает View к форме скругленного прямоугольника с радиусом угла 20.

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

Вот что происходит за кулисами. Обрезать вид — значит определить его видимую область. В предыдущем примере модификатор clipShape обрезает вид, применяя форму скругленного прямоугольника. Видимой будет только та часть вида, которая находится в границах скругленного прямоугольника.

Другие примеры обрезания представлений

Для дальнейшего изучения обрезки попробуйте использовать другие типы фигур, предоставляемые SwiftUI, такие как круги, эллипсы, капсулы и пользовательские фигуры. Вот еще несколько примеров интересных эффектов, которые можно получить с помощью clipShape:

Предварительный просмотр для этого представления должен выглядеть следующим образом:

Поваренная книга SwiftUI: обрезка представлений

Другие примеры клиппинга в SwiftUI.

В этом примере мы имеем VStack, содержащий несколько представлений Text, каждое из которых имеет свой модификатор clipShape.

Первое текстовое представление обрезается по форме круга с помощью Circle. Второе текстовое представление привязывается к форме эллипса с помощью Ellipse. Третий вид текста обрезается по форме капсулы с помощью Capsule.

Наконец, четвертое текстовое представление демонстрирует обрезку по пользовательской форме. Вы определяете структуру CustomShape, соответствующую протоколу Shape, и реализуете метод path(in rect: CGRect) для описания желаемой формы. В данном случае создается простая треугольная форма.

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

Не стесняйтесь экспериментировать с другими типами фигур и настраивать радиус угла или размеры фигур в соответствии со своими требованиями. Возможности обрезки в SwiftUI являются мощным инструментом формирования и преобразования представлений для создания визуально привлекательных пользовательских интерфейсов.

Примечание: Обрезание представлений в SwiftUI может потенциально повлиять на производительность, особенно при использовании сложных или вложенных представлений. Рассмотрите такие альтернативные варианты, как настройка размера кадра под нужную видимую область, использование модификаторов overlay и background, создание пользовательских фигур с помощью протокола Shape или предварительный рендеринг статического содержимого в изображения. Проанализируйте производительность приложения с помощью таких инструментов, как Xcode Instruments. Каждое решение имеет свои компромиссы — наиболее эффективный подход будет зависеть от конкретных потребностей вашего приложения.

Предложите исправление: выделите текст и нажмите Ctrl+ Enter

← Предыдущая статьяТени

Источник

Если вы нашли опечатку - выделите ее и нажмите Ctrl + Enter! Для связи с нами вы можете использовать info@apptractor.ru.
Telegram

Популярное

Сообщить об опечатке

Текст, который будет отправлен нашим редакторам: