Основная точка привязки анимации игнорируется?

Этот код: (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)


person cemulate    schedule 15.05.2009    source источник
comment
Нет ответа. Просто интересно, установили ли вы точку привязки self.layer где-то еще. Согласно (документам)[developer.apple.com/documentation/GraphicsImaging/Reference/ должно быть (0,5, 0,5)...   -  person EightyEight    schedule 10.06.2009
comment
Когда вы говорите, что он вращается вокруг своего начала, вы имеете в виду нижний левый угол?   -  person Ben Stiglitz    schedule 16.07.2009


Ответы (1)


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

person drudru    schedule 07.07.2009