如何在一个选定点旋转CALayer。
发布于 2010-10-14 10:43:46
CATransform3D transform = CATransform3DIdentity;
transform = CATransform3DTranslate(transform, rotationPoint.x-center.x, rotationPoint.y-center.y, 0.0);
transform = CATransform3DRotate(transform, rotationAngle, 0.0, 0.0, -1.0);
transform = CATransform3DTranslate(transform, center.x-rotationPoint.x, center.y-rotationPoint.y, 0.0);
其中center
是层的中心,rotationAngle
是弧度(正方向是逆时针),rotationPoint
是要绕其旋转的点。center
和rotationPoint
位于包含视图的坐标空间中。
发布于 2010-10-14 02:58:31
查看CA documentation here。
您希望将转换设置为CATransform3DRotate,例如:
CATransform3D current = myLayer.transform;
myLayer.transform = CATransform3DRotate(current, DEGREES_TO_RADIANS(20), 0, 1.0, 0);
https://stackoverflow.com/questions/3926923
复制相似问题