Я пытаюсь анимировать вид с помощью CATransition
с типом перехода push
, а также мне нужно сделать трехмерное вращение. Я попробовал это и уже получил полу ожидаемое поведение. Посмотрите на код ниже.
let animationDuration: Float = 5.0
let transition = CATransition.init()
transition.duration = CFTimeInterval(animationDuration)
transition.type = kCATransitionPush
transition.timingFunction = CAMediaTimingFunction(name: kCAMediaTimingFunctionEaseInEaseOut)
transition.subtype = kCATransitionFromRight
containerView.layer.add(transition, forKey: nil)
var rotateIdentity = CATransform3DIdentity
rotateIdentity.m34 = -1.0/1000
let rotate = CATransform3DRotate(rotateIdentity, .pi / 6, 0.0, 1.0, 0.0)
UIView.animate(withDuration: 2.5, animations: {
containerView.layer.transform = rotate
}, completion: { _ in
let rotate2 = CATransform3DRotate(rotateIdentity, .pi / 6, 0.0, 0.0, 0.0)
UIView.animate(withDuration: 2.5, animations: {
containerView.layer.transform = rotate2
}, completion: nil)
})
Таким образом, фактический результат таков: представление скользит из текущей позиции вправо (как и ожидалось), но вращение не начинается с начала анимации перехода