С выходом iOS 26 и Liquid Glass компания Apple добавила не только новый стиль, но и новые анимации переходов. Одна из самых заметных мелочей - морфинг листа (sheet) из кнопки, которая его вызывает. Вместо стандартного выезда снизу кнопка буквально превращается в модальное окно. Выглядит эффектно и требует совсем немного строк кода.
Как это работает:
Раньше любой sheet просто выезжал снизу экрана, независимо от того, откуда его вызвали. Теперь можно связать кнопку и sheet через общий namespace и SwiftUI сам анимирует трансформацию одного в другое.
Все, что нужно - три простых шага:
🔵Создать namespace для анимации.
🔵Повесить на кнопку модификатор .matchedTransitionSource с уникальным ID.
🔵Добавить на лист .navigationTransition(.zoom(...)) с тем же ID и namespace.
@Namespace private var animation
Button("Выбрать дату") { showSheet = true }
.matchedTransitionSource(id: "datePicker", in: animation)
.sheet(isPresented: $showSheet) {
DatePickerView()
.navigationTransition(.zoom(sourceID: "datePicker", in: animation))
}
🔗 Читать подробнее
💡 Вывод:
Морфинг листов из тех деталей, которые незаметны, когда они есть, но сразу бросаются в глаза, когда их нет. Apple добавила эту анимацию не ради галочки, а чтобы интерфейс ощущался цельным: кнопка не просто запускает появление окна, а буквально становится им. Визуальная связь между действием и результатом работает на подсознании, и пользователю не нужно объяснять, откуда взялся лист - он просто вырастает из того места, куда нажали. Внедрение занимает минуту, но именно из таких минут складывается ощущение дорогого, продуманного продукта.
➡️ Подписаться на канал
Мобильный трудоголик