Ios 围绕所有轴的CATTransferorM3D

Ios 围绕所有轴的CATTransferorM3D,ios,uiview,core-animation,Ios,Uiview,Core Animation,我正在尝试创建一种“翻转”动画,将UIView绕每个轴旋转180度,但是,我无法获得所需的效果。以下是到目前为止我得到的信息: [UIView animateWithDuration:0.5 delay:0 options:UIViewAnimationOptionCurveEaseInOut animations:^{ CATransform3D tX= CATransform3DIdentity; tX.m34 = 1.0 / -500;

我正在尝试创建一种“翻转”动画,将UIView绕每个轴旋转180度,但是,我无法获得所需的效果。以下是到目前为止我得到的信息:

[UIView animateWithDuration:0.5 delay:0 options:UIViewAnimationOptionCurveEaseInOut animations:^{     
        CATransform3D tX= CATransform3DIdentity;
        tX.m34 = 1.0 / -500;
        CATransform3D tY= CATransform3DIdentity;
        tY.m34 = 1.0 / -500;
        CATransform3D tZ= CATransform3DIdentity;
        tZ.m34 = 1.0 / -500;

        tX = CATransform3DRotate(tX, M_PI, 1.0f, 0.0f, 0.0f);
        tY = CATransform3DRotate(tY, M_PI, 0.0f, 1.0f, 0.0f);
        tZ = CATransform3DRotate(tZ, M_PI, 0.0f, 0.0f, 1.0f);

        self.flipView.layer.transform = CATransform3DConcat(tX, CATransform3DConcat(tY, tZ));            
    }

但是,这似乎不会执行任何动画,好像它们正在相互抵消。看起来这应该是一个非常简单的任务,但我似乎不知道如何组合这3个动画条件中的每一个。非常感谢您的帮助!感谢

围绕三个轴中的每一个旋转半圈(180°或π弧度),总共不会导致任何变化(三个旋转变换的串联会导致恒等变换)


试着只绕一个轴旋转,看看它能做什么。

谢谢,这很有帮助。我想它会执行动画,即使终点与起点相同-但显然不是。我相当确定
UIView
动画,甚至可能
CABasicAnimation
s会查看开始和结束状态,并根据这些状态确定要做什么。不过,很可能还有另一种动画机制,其工作原理与您所想的一样。