我正在尝试旋转NSImageView的CALayer。问题在于,锚点似乎默认为(0.0, 0.0),但我想让它成为图像的中心(Apple的文档指示默认应该是中心点(0.5, 0.5),但在我的系统OS X 10.7上不是这样)。当我修改锚点时,图像中心原点会移动到左下角。
以下是我正在使用的代码来旋转图层:
以下是我正在使用的代码来旋转图层:
CALayer *myLayer = [imageView layer];
CGFloat myRotationAngle = -M_PI_2;
NSNumber *rotationAtStart = [myLayer valueForKeyPath:@"transform.rotation"];
CATransform3D myRotationTransform = CATransform3DRotate(myLayer.transform, myRotationAngle, 0.0, 0.0, 1.0);
myLayer.transform = myRotationTransform;
CABasicAnimation *myAnimation = [CABasicAnimation animationWithKeyPath:@"transform.rotation"];
myAnimation.duration = 1.0;
myAnimation.fromValue = rotationAtStart;
myAnimation.toValue = [NSNumber numberWithFloat:([rotationAtStart floatValue] + myRotationAngle)];
[myLayer addAnimation:myAnimation forKey:@"transform.rotation"];
myLayer.anchorPoint = CGPointMake(0.5, 0.5);
[myLayer addAnimation:myAnimation forKey:@"transform.rotation"];