Frage

ich eine NSView erschaffe, die in ihrer drawRect Methode erstellt und fügt ein NSImageView als Subview.

Ich möchte diese NSImageView (Circle) drehen, oder [self]. So in einem anderen Verfahren, ich versuche, das zu tun:

-(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"];
}

Allerdings ist dieser Code nichts tun, wenn die Methode aufgerufen wird. Mache ich etwas falsch? Ich habe versucht, self.layer und circleView.layer aber weder scheinen Arbeit ...

War es hilfreich?

Lösung

Your're nur die Animation zu definieren, sind Sie eigentlich nicht den Aufruf der Animation Block, dass führt die Animation.

Sie müssen einen Block nennen, die zwischen:

+ beginAnimations:context:
+ commitAnimations

So führen Sie eigentlich die Animation.

Edit01: Meine schlecht. Ich habe nicht darauf geachtet zu den Tags und die Antwort für das iPhone API hinzugefügt.

Andere Tipps

Die Antwort auf diese Frage ist, dass die NSView / NSImageView nicht eine Trägerschicht hat mit der Animation zu tun.

Sie setzen diese mit:

[NSView setWantsLayer:YES];
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top