iPhone动画:为什么将UILabel绕X轴旋转会剪掉其底部一半?

6
我想在X轴上旋转一个UILabel,并做动画效果。但是当动画开始时,标签的文本被水平切成两半。底部消失了,上半部分在旋转。为什么会这样呢?
以下是代码:
CATransform3D _3Dt = CATransform3DMakeRotation(radians(90.0f), 1.0, 0.0, 0.0);

CABasicAnimation *transformAnimation = [CABasicAnimation animationWithKeyPath:@"transform"];

transformAnimation.removedOnCompletion = NO;

transformAnimation.toValue = [NSValue valueWithCATransform3D:_3Dt];

transformAnimation.fillMode = kCAFillModeForwards;

(sdk 3.0)

1个回答

14

X 轴?这意味着在旋转过程中,UILabel 的一半将具有 z > 0(屏幕前面),而另一半则具有 z < 0(屏幕后面)。

如果在 z == 0 处有其他图层,它们将覆盖您的 UILabel 的 z < 0 部分。

尝试增加您的标签层的 zPosition


这对于多层场景中正确执行3D变换至关重要。+1,特别是由于这样一个关键点似乎没有被提到过。每个教程都应该指出调整zPosition以避免交叉污染... - SG1
我也遇到了旋转图像(UIImageView)被裁剪的问题。在找到这个答案之前,我不知道花了多少小时寻找解决方案。非常感谢! - Mariusz Schimke

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接