Разработка
Анимируем представления UIKit с помощью анимации SwiftUI
API анимации SwiftUI упрощает определение анимаций и управление их временем и повторением.
В iOS 18 появилась новая мощная функция: возможность анимировать представления UIKit с помощью типов анимации SwiftUI. Это еще больше сокращает разрыв между двумя фреймворками, позволяя нам привнести гибкость и выразительность системы анимации SwiftUI в проекты на базе UIKit.
Давайте рассмотрим простой пример, чтобы увидеть, как это работает на практике. Мы будем анимировать UIImageView, который непрерывно увеличивается и уменьшается в размерах.
Вот начальная настройка:
class ViewController: UIViewController {
private var animatingView: UIView?
override func viewDidLoad() {
super.viewDidLoad()
animatingView = UIImageView(
image: UIImage(systemName: "volleyball.fill")
)
animatingView?.tintColor = .systemPink
animatingView?.contentMode = .scaleAspectFit
animatingView?.frame = CGRect(
origin: .init(x: 0, y: 0),
size: .init(width: 80, height: 80)
)
view.addSubview(animatingView!)
animatingView?.center = view.center
}
}
Далее мы определим логику анимации. Анимация будет начинаться, когда представление появится на экране, поэтому мы реализуем ее в методе viewDidAppear()
. Используя SwiftUI Animation API, мы создадим линейную анимацию длительностью 1.3 секунды, которая будет повторяться бесконечно. Мы применим эту анимацию к представлению изображения с помощью нового метода UIView.animate()
, который принимает в качестве аргумента анимацию SwiftUI Animation.
xxxxxxxxxx
class ViewController: UIViewController {
...
override func viewDidAppear(_ animated: Bool) {
super.viewDidAppear(animated)
self.startAnimating()
}
private func startAnimating() {
let animation = SwiftUI.Animation
.linear(duration: 1.3)
.repeatForever()
UIView.animate(animation) { [weak self] in
self?.animatingView?.transform = .init(scaleX: 2, y: 2)
}
}
}
Наконец, мы можем просмотреть анимацию прямо в Xcode, чтобы убедиться, что все работает как надо:
xxxxxxxxxx
#Preview {
ViewController()
}
Когда приложение запускается, иконка волейбольного мяча плавно увеличивается в два раза и этот эффект постоянно повторяется.
API анимации SwiftUI упрощает определение анимаций и управление их временем и повторением. Используя анимации SwiftUI в UIKit, мы можем создавать более плавные и согласованные анимации во всем нашем приложении, улучшая общее впечатление пользователей.
Если у вас есть старые приложения для iOS и вы хотите улучшить их с помощью современных функций SwiftUI, ознакомьтесь с книгой «Интеграция SwiftUI в приложения UIKit». В ней содержится подробное руководство по постепенному внедрению SwiftUI в ваши UIKit-проекты. Кроме того, если вы хотите усовершенствовать свои навыки программирования на Swift, последняя книга Swift Gems предлагает более сотни продвинутых советов и приемов, включая оптимизацию коллекций, работу со строками, освоение асинхронного программирования и отладку, чтобы поднять ваш Swift-код на новый уровень.
-
Программирование3 недели назад
Конец программирования в том виде, в котором мы его знаем
-
Видео и подкасты для разработчиков6 дней назад
Как устроена мобильная архитектура. Интервью с тех. лидером юнита «Mobile Architecture» из AvitoTech
-
Магазины приложений3 недели назад
Магазин игр Aptoide запустился на iOS в Европе
-
Новости3 недели назад
Видео и подкасты о мобильной разработке 2025.8