2014-06-28 2 views
1

J'essaie de comprendre comment faire un remplissage UIProgressView de droite à gauche avec des valeurs progress de plus en plus élevées. Je pensais que si je faisais juste tourner le composant, ça irait, mais l'ombrage apparaît maintenant à l'envers. Comment ajouter une transformation "flip verticalement" pour terminer la tâche?Comment faire une transformation de rotation + composé composé?

Remarque, la question de l'ombrage affecte < iOS 7.

Voici ce que j'ai jusqu'à présent, la 2ème ligne de code ne fonctionne pas correctement, il fait disparaître le contrôle.

CGAffineTransform rotateTransform = CGAffineTransformMakeRotation(M_PI); // rotate 180 degrees (but now it's upside down) 
CGAffineTransform flipTransform = CGAffineTransformMake(0, 0, 0, 1, 0, 0); // flip 90 degrees to bring it the right way up 
myProgressView.transform = CGAffineTransformConcat(rotateTransform, flipTransform); 

REMARQUE: Je ne cherche pas à animer quoi que ce soit

MISE À JOUR: Au lieu d'essayer de comprendre deux transformations pour y parvenir (par exemple, une 180 rotation + 180 inversion verticale), juste un 180 inversé horizontal devrait atteindre la même chose.

Répondre

0

Un petit rond-point mais le tour est joué ...

CATransform3DGetAffineTransform(CATransform3DMakeRotation(M_PI, 0, 1, 0));

enter image description here

Déconnexion la transformation

NSLog(@"%@",[NSValue valueWithCGAffineTransform:self.progress.transform]);

donne

CGAffineTransform: {{-0,99999982, 0, 0, 1}, {0, 0}}

et montre un manque a valeur de -1.0 dans votre tentative de créer la transformation.

+0

C'est le seul! Je viens de le coder en dur comme suit: 'myProgressView.transform = CGAffineTransformMake (-1, 0, 0, 1, 0, 0);' – DTs