Connect with us

Разработка

Создаем анимированные переходы с помощью Matched Geometry Effect в SwiftUI

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

/

     
     

В SwiftUI мы можем создавать плавные переходы между экранами, из одного состояния в другое, с помощью Matched Geometry Effect (эффект совпадающей геометрии). Используя уникальные идентификаторы, мы можем смешивать геометрию двух видов с одним и тем же идентификатором, создавая анимированный переход. Подобные переходы могут быть полезны для навигации или изменения состояния элементов пользовательского интерфейса.

Создаем анимированные переходы с помощью Matched Geometry Effect в SwiftUI

Пример анимации, которую можно получить с помощью эффекта Matched Geometry Effect — App Store от Apple.

Чтобы реализовать его в пользовательском интерфейсе, необходимо:

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

Давайте добавим анимированный переход с использованием эффекта совпадающей геометрии к следующему виду:

Чтобы включить Matching Geometry Effect, необходимо:

  • Определить идентификатор для каждого представления, которое будет занимать место в переходе
  • Определить пространство имен, в котором будут определены идентификаторы группы представлений, с помощью обертки свойства @Namespace
  • Применить модификатор .matchedGeometryEffect(id:in:properties:anchor:isSource:) к каждому из видов, которые будут частью анимированного перехода

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

Создаем анимированные переходы с помощью Matched Geometry Effect в SwiftUI

Посмотрите еще видео про Matched Geometry Effect:

Источник

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

Популярное

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

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