2009-05-15 6 views
4

Ce code: (auto est une sous-classe de NSView)Le point d'ancrage de l'animation principale est ignoré?

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

doit tourner ma couche autour de son centre. J'ai mis le point d'ancrage à (0.5, 0.5), mais la vue tourne toujours autour de son origine. Comment cela se passe-t-il? J'ai googlé en vain, donc je suis sûr que c'est probablement quelque chose de vraiment simple que je manque ...

Les NSLog's semblent rapporter de bonnes valeurs. Le premier signale (0, 0) et le second (0,5, 0,5)

+0

Vous n'avez pas de réponse. Je me demandais juste si vous définissiez le point d'ancrage de Self.layer ailleurs. Selon (docs) [http://developer.apple.com/documentation/GraphicsImaging/Reference/CALayer_class/Introduction/Introduction.html#//apple_ref/occ/instp/CALayer/anchorPoint] il devrait être (0.5, 0.5) ... – EightyEight

+0

Quand vous dites qu'il tourne autour de son origine, voulez-vous dire le coin en bas à gauche? –

Répondre

2

Le point d'ancrage par défaut est 0.5, 0.5 par défaut, donc il ne devrait pas avoir à être défini. Il est possible que vous ayez positionné le contenu de la couche de sorte que apparaît comme si l'origine se trouvait réellement au point d'ancrage.

Questions connexes