简体   繁体   English

CALayer旋转变换的奇怪行为

[英]Strange behaviour of rotation transform for CALayer

I'm using CALayer for interactive book engine and want to rotate CALayer around it center but when I apply rotation transform (using angle which is based on user input) to CALayer it goes crazy: layer stretches and moves in very strange way and disappears. 我将CALayer用于交互式书本引擎,并希望围绕其中心旋转CALayer,但是当我将旋转变换(使用基于用户输入的角度)应用于CALayer时,它会发疯:层以非常奇怪的方式拉伸和移动并消失。 What I do is 我要做的是

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

Interestingly, when my angle is M_PI or M_PI/2, or it's scale transform everything is ok, but when its rotation and any other angles layer goes crazy. 有趣的是,当我的角度为M_PI或M_PI / 2或进行比例转换时,一切正常,但是当其旋转和任何其他角度层变得疯狂时。

Does anybody know what's happening and how to fix it? 有人知道发生了什么事以及如何解决吗?

发现其原因自己:这是因为在并行使用I移动层.frame代替.position属性:帧属性本身是基于变换从而设置它产生了“疯狂”行为计算。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM