Вращающийся NSView, который содержит NSImageView - PullRequest
2 голосов
/ 15 февраля 2010

Я создаю NSView, который в своем методе drawRect создает и добавляет NSImageView как подпредставление.

Я бы хотел повернуть этот NSImageView (circleView) или [self]. Итак, в другом методе я пытаюсь сделать это:

-(void)startAnimation {
CABasicAnimation* spinAnimation = [CABasicAnimation animationWithKeyPath:@"transform.rotation.z"];
spinAnimation.toValue = [NSNumber numberWithFloat:5*2*M_PI];
spinAnimation.duration = 2;
[circleView.layer addAnimation:spinAnimation forKey:@"spinAnimation"];
}

Однако этот код ничего не делает при вызове метода. Я делаю что-то неправильно? Я пробовал self.layer и circleView.layer, но ни один из них не работает ...

Ответы [ 2 ]

2 голосов
/ 15 февраля 2010

Ответ на этот вопрос заключается в том, что NSView / NSImageView не имеет вспомогательного слоя для анимации.

Вы устанавливаете это с помощью:

[NSView setWantsLayer:YES];
1 голос
/ 15 февраля 2010

Вы просто определяете анимацию, на самом деле вы не вызываете блок анимации, который выполняет анимацию.

Вам необходимо вызвать блок, определенный между:

+ beginAnimations:context:
+ commitAnimations

На самом деле запустить анимацию.

Edit01: Мой плохой. Я не обратил внимания на теги и добавил ответ для iPhone API.

...