Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/107.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 标签作为子视图的CATTransform3D旋转_Ios_Catransform3d - Fatal编程技术网

Ios 标签作为子视图的CATTransform3D旋转

Ios 标签作为子视图的CATTransform3D旋转,ios,catransform3d,Ios,Catransform3d,我有一个关于CATTransferM3D的问题 我有一个视图a,其中包含一个标签B。B的图层位置是a的中心。B用于显示通知消息。我想把A旋转180度,当然B中的文字会颠倒过来。所以我也必须把B旋转180度。一切看起来都很简单,实际上在模拟器中工作得很好 但当我装上设备时,A和B确实旋转了,但B的位置改变了。现在我只能看到B的一半,另一半在A之外 我的猜测是,当旋转A时,因为B与A的坐标系相关,该坐标系翻转了180度,所以B的位置改变了 但我想知道是否有人有办法解决这个问题,或者你们是否有更好的方

我有一个关于CATTransferM3D的问题

我有一个视图a,其中包含一个标签B。B的图层位置是a的中心。B用于显示通知消息。我想把A旋转180度,当然B中的文字会颠倒过来。所以我也必须把B旋转180度。一切看起来都很简单,实际上在模拟器中工作得很好

但当我装上设备时,A和B确实旋转了,但B的位置改变了。现在我只能看到B的一半,另一半在A之外

我的猜测是,当旋转A时,因为B与A的坐标系相关,该坐标系翻转了180度,所以B的位置改变了

但我想知道是否有人有办法解决这个问题,或者你们是否有更好的方法

多谢各位

更新

我仍然不明白为什么B的位置会移动,但我想出了另一种方法来实现相同的动画。有点棘手


关键是
animation.autoreverse
,我们知道,当您通过Pi旋转标签的超级视图时,标签中的文本将颠倒。因此,我所做的是以Pi/2旋转超级视图,保持相同的持续时间并设置
autoreverse=YES
,它将以Pi/2旋转超级视图,然后将其旋转回初始状态。结果表明,视图根本没有旋转,但对于用户的视觉,它是旋转的

我发现视图的子层和子视图并不总是能很好地响应双重动画(尤其是alpha和中心的变化)。如果必须这样做(因为这比正常情况要贵一点),请使用UIViewAnimationOptionAllowsAnimatedContent,这将强制重新绘制,而不是动画的“快照”。

我同意你的看法。但我想找到一种方法让它们发挥作用。如果我得到任何信息,我将更新此线程。谢谢你的帮助。听起来很棒。在iOS中,动画是很棘手的,但如果你做得好,它真的很整洁。