Je souhaite modifier l'orientation de l'unité lorsqu'une vue particulière apparaît. J'ai beaucoup d'informations sur l'action à entreprendre lorsque l'orientation change mais je ne comprends pas comment changer l'orientation de l'appareil elle-même. Notez que mes autres vues doivent rester dans l'orientation par défaut.Modification de l'orientation du périphérique pour une sous-classe UIViewController particulière
2
A
Répondre
0
[[UIDevice currentDevice] setOrientation:UIDeviceOrientationPortrait];
Notez que ce ne fait pas partie du cadre UIDevice dans la documentation de l'API, donc Apple peut rejeter une application qui utilise.
0
Vous pouvez modifier l'orientation d'une vue en utilisant CGAffineTransforms
au lieu d'API privées. Vous devez modifier l'orientation UIStatusBarOrientation
pour faire correspondre la nouvelle orientation et trouver un angle pour faire pivoter la vue:
Par exemple, si votre vue est en orientation paysage et que vous souhaitez la faire revenir en mode portrait.
CGAffineTransform transform = CGAffineTransformIdentity;
switch ([[UIApplication sharedApplication] statusBarOrientation]) {
case UIInterfaceOrientationLandscapeLeft:
transform = CGAffineTransformMakeRotation(M_PI_2);
break;
case UIInterfaceOrientationLandscapeRight:
transform = CGAffineTransformMakeRotation(-M_PI_2);
break;
default:
break;
}
[[UIApplication sharedApplication] setStatusBarOrientation:UIInterfaceOrientationPortrait];
[UIView animateWithDuration:0.2f animations:^ {
[view setTransform:transform];
}];
[view setFrame:CGRectMake(0, 0, 320, 480)];
[view setNeedsLayout];
Questions connexes
- 1. Impossible d'obtenir les limites du paysage pour UIViewController modal
- 2. Signification particulière pour la valeur du pointeur 0x7c7c7c7c
- 3. Comment puis-je détecter une rotation sur l'iPhone sans l'autorotation du périphérique?
- 4. Linux utilitaire de connaître la commande pour une tâche particulière
- 5. comment supprimer une ligne particulière du fichier d'accès aléatoire
- 6. Définition du curseur de la souris pour une cellule JTable particulière
- 7. Modification du code d'échappement (pour l'affichage)
- 8. Comment répéter une exécution particulière plusieurs fois
- 9. Modification de l'attribut DisplayName pour une propriété
- 10. Comment recharger une UIViewController sur l'iPhone
- 11. fermer une invite de commande particulière
- 12. Modification du nom de viewstate
- 13. Pratique UIView et UIViewController pour l'héritage
- 14. Modification du niveau de zoom du navigateur
- 15. Animation personnalisée pour pousser un UIViewController
- 16. Problème UIViewController
- 17. commande sql pour lire une feuille particulière, colonne
- 18. Lecture du numéro de série du périphérique USB en C#
- 19. Modification du fichier elf
- 20. Modification des couleurs du système pour une seule application (Windows, .NET)
- 21. ACL pour un périphérique réseau
- 22. Déchiffrer l'avertissement de propriété UIViewController
- 23. Views Overlaping UIViewController
- 24. Obtenir l'adresse IP du périphérique avec Bonjour
- 25. Sélectionnez une ligne particulière dans Gridview
- 26. modification du fichier plist
- 27. Forcer l'orientation UIView/UIVIewController
- 28. Modification de la disposition du clavier pour un autre processus
- 29. UIView vs UIViewController
- 30. Modification du type de fichier une fois ajouté à CVSNT
Cela fonctionne mais @micco note que l'application peut être rejetée. Cela a été confirmé par [@got nate] (http://stackoverflow.com/users/145186/): «Merci d'avoir envoyé [nom de l'application] sur l'App Store. Malheureusement, il ne peut pas être ajouté à l'App Store car il utilise une API privée. "3.3.1 Les applications ne peuvent utiliser que des API documentées de la manière prescrite par Apple et ne doivent utiliser ou appeler aucun service privé. Apis." L'API non publique incluse dans votre application est setOrientation :. –