Проблемы с iOS 13 CATransform3D - PullRequest
       44

Проблемы с iOS 13 CATransform3D

0 голосов
/ 23 октября 2019

До выхода 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 (если есть), но мне было интересноесли кто-то еще сталкивается с таким типом проблемы и / или знает обходной путь.

Спасибо за чтение.

...