2009-08-18 8 views
2

Je veux avoir une interface complètement à l'envers. Je ne veux pas dire que cela devrait changer selon l'orientation du téléphone. Je veux dire qu'il devrait être à l'envers (UIInterfaceOrientationPortraitUpsideDown) tout le temps. Un bouton devrait être en mesure de «redresser» à nouveau. Le même bouton devrait tout retourner à l'envers.Interface à l'envers pour l'iPhone

Quelle est la meilleure façon d'y parvenir?

Répondre

2

Définir l'attribut transform sur la couche de la vue racine. Quelque chose comme:

bool upsideDown = ... 
float degrees = upsideDown ? 180.0f : 0.0f; 
NSNumber* radians = [NSNumber numberWithFloat:degrees * M_PI/180.0f]; 
[rootView.layer setValue:radians forKeyPath:@"transform.rotation.z"]; 

(.. Bien sûr, vous pourriez facilement optimiser la petite formule de conversion de degrés en radians puisque vous utilisez seulement 0,0 et pi inclus juste pour plus de clarté)

1

je regarderais en deux options:

  1. La rotation de la toile 180 degrés
  2. Inverser l'accéléromètre

Je ne sais pas comment accomplir soit la tâche, mais une recherche rapide sur Google affiche des résultats .

2

Si vous voulez un interface à l'envers, l'orientation n'a pas d'importance. En substance, appliquez une transformation affine pivotée à la vue que vous utilisez, par exemple:

window.transform = CGAffineTransformRotate (window.transform, M_PI);

Un décalage sera requis si vous avez une barre d'état là-haut. Appliquez-le à nouveau et vous le «faites pivoter».