CALayer旋转变换的奇怪行为

时间:2013-08-06 02:24:35

标签: ios objective-c calayer quartz-graphics

我正在使用CALayer进行交互式书籍引擎,并希望围绕它旋转CALayer,但是当我将旋转变换(使用基于用户输入的角度)应用于CALayer时,它变得疯狂:图层拉伸并以非常奇怪的方式移动并消失。我的工作是

[CATransaction begin];
[CATransaction setValue: (id) kCFBooleanTrue forKey: kCATransactionDisableActions];
...
layer.transform = CATransform3DMakeRotation(angle, 0, 0, 1);
...
[CATransaction commit];

有趣的是,当我的角度是M_PI或M_PI / 2,或者它的比例变换时,一切都没问题,但是当它的旋转和任何其他角度层变得疯狂时。

有人知道发生了什么以及如何解决它吗?

1 个答案:

答案 0 :(得分:2)

我自己找到了原因:这是因为并行使用.frame代替.position属性移动了图层:框架属性本身是根据变换计算的,因此设置它会产生“疯狂”行为。 / p>

相关问题