2010-07-20 8 views
7

sto animare una vista UIImage con questo codiceCATransform3DRotate e UIImageView

CABasicAnimation *animation; 
animation = [CABasicAnimation animationWithKeyPath:@"transform.rotation"]; 
animation.duration = 1; 
animation.toValue = [NSNumber numberWithFloat:M_PI]; 
animation.fromValue = [NSNumber numberWithInt:0]; 
[square.layer addAnimation:animation forKey:@"rotation"]; 

Tutto funziona bene, ma il mio allineamento prendere la sua posizione originale alla fine dell'animazione. Ho guardato nelle proprietà del livello e l'ho trovato:

[square.layer setTransform:CATransform3DRotate(HERE, -M_PI, 0, 0, 0)]; 

E io non so cosa scrivere al posto di "QUI". Potresti aiutarmi per favore? Grazie mille!

risposta

3

CATransform3DRotate() prende come primo parametro una trasformazione per applicare una rotazione a. Se stavate cercando di ruotare la trasformazione del vostro livello, è necessario utilizzare

[square.layer setTransform:CATransform3DRotate(square.layer.transform, -M_PI, 0, 0, 0)]; 

Detto questo, se il problema che si stanno avendo è che i cretini strato torna alla posizione di partenza al termine dell'animazione, tutte è necessario impostare la proprietà removedOnCompletion dell'animazione su NO e la proprietà fillMode su kCAFillModeForwards.

+0

Thnaks molto Brad! – Pierre