尽管我尽了最大的努力,但我无法弄清楚如何使用 CATransform3DRotate 从左到右进行 UIView 的完整循环旋转动画。请注意,我已经可以使用 CABasicAnimation 将其旋转 360 度,但没有 CATransform3DRotate。但是,我想使用.m34变换来获得透视深度。涉及 UIView.animate/transitions 的解决方案对我想要完成的工作没有帮助。任何帮助深表感谢。
编辑:我在 Stackoverflow 和其他地方进行了广泛搜索,但没有找到任何描述如何使用 CATransform3DRotate 进行 360 度旋转的内容。在那里寻求帮助,因为这是一个以前似乎没有回答过的问题。谢谢!
这是将 UIView 旋转 180 度的代码。
var transform = CATransform3DIdentity
transform.m34 = 1.0 / -200.0
let animation = CABasicAnimation(keyPath: "transform")
animation.toValue = CATransform3DRotate(transform, CGFloat( Double.pi), 0, 1, 0)
animation.duration = 0.8
animation.beginTime = 0.0
animation.fillMode = .forwards
animation.timingFunction = CAMediaTimingFunction(name: CAMediaTimingFunctionName.easeInEaseOut)
cardView.layer.add(animation, forKey: "360flip")