20

我正在使用以下代码来旋转图像,但是已经旋转“离开”页面的一半图像(沿着 y 轴)消失了。怎么修?heading以弧度为单位。

    CALayer *layer = myUIImageView.layer;
    CATransform3D rotationAndPerspectiveTransform = CATransform3DIdentity;
    rotationAndPerspectiveTransform.m34 = 1.0 / 500;
    rotationAndPerspectiveTransform = CATransform3DRotate(rotationAndPerspectiveTransform, heading, 0.0f, 1.0f, 0.0f);
    layer.transform = rotationAndPerspectiveTransform;
4

3 回答 3

33

解决方案是zPosition适当地设置我所有图层的属性。感谢@Brad Larson,他在此处的评论中建议了此解决方案。似乎,当您开始使用时CATransform3D,由 addsubview 建立的正常 zindex 视图层次结构被抛出窗口。

于 2011-02-21T00:22:34.783 回答
5
  layer.anchorPoint = CGPointMake(0.0, 0.0);
于 2011-05-20T22:57:36.317 回答
0

设置anchorPointto{0.0, 0.0}也可以(正如利亚姆已经指出的那样)。

anchorPoint这是在不更改图层在屏幕上的位置的情况下更改的完整代码片段:

     layer.anchorPoint = CGPointMake( 0.0, 0.0 );

     CGPoint position = layer.position;
     CGSize size = layer.bounds.size;

     CGFloat posX = position.x - size.width / 2.0;
     CGFloat posY = position.y - size.height / 2.0;

     layer.position = CGPointMake( posX, posY );
于 2012-07-24T08:55:10.063 回答