До выхода iOS 13 у меня был некоторый код CATransform3D
внутри блока UIView.animate
. В iOS 12 результат анимации преобразования выглядел следующим образом: https://youtu.be/mfIzjjlKOBM. В iOS 13 тот же код преобразования теперь дает такой результат: https://youtu.be/hQdyGactIfA.
Как вы можете видеть в iOS 13,анимация больше не является плавным движением куба, как в iOS 12. Вот мой основной код:
UIView.animate(withDuration: duration, delay: 0, options: .curveEaseOut, animations: {
view.layer.transform = entryTransformation
view.alpha = 1
previousElementView.layer.transform = exitTransformation
previousElementView.alpha = 0.2
}, completion: nil)
А вот как выглядят значения для entryTransformation
и exitTransformation
(высота экрана 896). Оба значения преобразования (и точки привязки) остаются одинаковыми от iOS 12 до iOS 13.
// entryTransformation
// anchor point: (x: 0.5, y: 0.5)
CATransform3D
- m11 : 1.0
- m12 : 0.0
- m13 : 0.0
- m14 : 0.0
- m21 : 0.0
- m22 : 1.0
- m23 : 0.0
- m24 : 0.0
- m31 : 0.0
- m32 : 0.0
- m33 : 1.0
- m34 : 0.0
- m41 : 0.0
- m42 : 0.0
- m43 : 0.0
- m44 : 1.0
// exitTransformation
// anchor point: (x: 0.5, y: 0.0)
CATransform3D
- m11 : 1.0
- m12 : 0.0
- m13 : 0.0
- m14 : 0.0
- m21 : 0.0
- m22 : 0.896
- m23 : -1.0
- m24 : 0.001
- m31 : 0.0
- m32 : 1.0
- m33 : 0.0
- m34 : 0.0
- m41 : 0.0
- m42 : 896.0
- m43 : 0.0
- m44 : 1.0
Вот как выглядят свойства преобразования каждого слоя непосредственно перед вызовоманимация (опять же, эти значения остаются одинаковыми в обеих версиях iOS):
// for the view/layer entering the scene
// anchor point: (x: 0.5, y: 1.0)
CATransform3D
- m11 : 1.0
- m12 : 0.0
- m13 : 0.0
- m14 : 0.0
- m21 : 0.0
- m22 : -0.896
- m23 : -1.0
- m24 : -0.001
- m31 : 0.0
- m32 : -1.0
- m33 : 0.0
- m34 : 0.0
- m41 : 0.0
- m42 : -896.0
- m43 : 0.0
- m44 : 1.0
// for the view/layer exiting the scene
// anchor point: (x: 0.5, y: 0.5)
CATransform3D
- m11 : 1.0
- m12 : 0.0
- m13 : 0.0
- m14 : 0.0
- m21 : 0.0
- m22 : 1.0
- m23 : 0.0
- m24 : 0.0
- m31 : 0.0
- m32 : 0.0
- m33 : 1.0
- m34 : 0.0
- m41 : 0.0
- m42 : 0.0
- m43 : 0.0
- m44 : 1.0
Я не уверен, какие изменения Apple внесла в Core Animation в структуре CATransform3D
(если есть), но мне было интересноесли кто-то еще сталкивается с таким типом проблемы и / или знает обходной путь.
Спасибо за чтение.