Я пытаюсь повернуть CALayer NSImageView. Моя проблема в том, что anchorPoint по умолчанию (0.0, 0.0), но я хочу, чтобы он был центром изображения (документация Apple указывает, что по умолчанию должен быть центр (0.5, 0.5), но это не в моей операционной системе 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"];