gpt4 book ai didi

ios - 以 Label 作为 subview 的 CATransform3D 旋转

转载 作者:行者123 更新时间:2023-11-28 17:34:27 24 4
gpt4 key购买 nike

我有一个关于 CATransform3D 的问题。

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

但是当我加载到设备上时,A 和 B 确实旋转了,但是 B 的位置发生了变化。现在只能看到B的一半,另一半在A外面。

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

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

非常感谢。

更新

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

关键是animation.autoreverse,我们知道当你将label的super view旋转Pi时,label中的文字会被旋转倒置。所以我所做的是将 super View 旋转 Pi/2,保持相同的持续时间并设置 autoreverse = YES,它将做的是将 super View 旋转 Pi/2,然后旋转它回到初始状态。结果表明 View 根本没有旋转,但是为了用户的视觉,它被旋转了。

最佳答案

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

关于ios - 以 Label 作为 subview 的 CATransform3D 旋转,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10239738/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com