我有一个关于 CATransform3D 的问题。
我有一个视图A,其中包含一个标签B。B的图层位置是A的中心。B用于显示通知消息。我想将A旋转180度,当然B中的文字会颠倒。所以我也必须将 B 旋转 180 度。一切看起来都很简单,实际上在模拟器中它工作正常。
但是当我在设备上加载时,A 和 B 确实旋转了,但是 B 的位置发生了变化。现在我只能看到 B 的一半,另一半不在 A 中。
我的猜测是,当旋转 A 时,因为 B 与 A 的坐标系相关,它被翻转了 180 度,所以 B 的位置发生了变化。
但我想知道是否有人知道如何解决这个问题,或者你们是否有更好的方法来解决。
非常感谢。
更新
我仍然无法弄清楚为什么 B 的位置会移动,但我想出了另一种方法来实现相同的动画。有点棘手。
关键是animation.autoreverse
,我们知道当你用 Pi 旋转 label 的 super view 时,label 中的文字会被倒置旋转。所以我所做的是将超级视图旋转 Pi/2,保持相同的 duration 和 set autoreverse = YES
,它将做的是它将超级视图旋转 Pi/2,然后将其旋转回初始状态。结果证明视图根本没有旋转,但是对于用户的视觉来说,它是旋转的。