Основная точка привязки анимации игнорируется? - PullRequest
4 голосов
/ 15 мая 2009

Этот код: (self является подклассом NSView)

    rotate = [CABasicAnimation animationWithKeyPath:@"transform.rotation.z"];

    rotate.duration = 5;

    rotate.toValue = [NSNumber numberWithFloat:(2*pi)];

    rotate.repeatCount = INFINITY;

    rotate.removedOnCompletion = NO;
    rotate.fillMode = kCAFillModeForwards;

    NSLog(NSStringFromPoint(CGToNSPoint([self layer].anchorPoint)));

    [self layer].anchorPoint = CGPointMake(0.5, 0.5);

    NSLog(NSStringFromPoint(CGToNSPoint([self layer].anchorPoint)));

    [[self layer] addAnimation:rotate forKey:@"constantRotation"];

ДОЛЖЕН вращать мой слой вокруг его центра. Я установил опорную точку (0.5, 0.5), но вид все еще вращается вокруг своего источника. Как это происходит. Я гуглил безрезультатно, так что я уверен, что это, наверное, что-то очень простое, что я просто скучаю ...

NSLog, кажется, сообщает правильные значения. Первый сообщает (0, 0), а второй (0,5, 0,5)

1 Ответ

2 голосов
/ 07 июля 2009

По умолчанию anchorPoint по умолчанию 0,5, 0,5, поэтому его не нужно устанавливать. Возможно, вы разместили содержимое слоя так, чтобы кажется, что источник действительно находится в точке привязки.

...