est ici un moyen d'exécuter une méthode lorsque l'orientation des périphériques iOS change? P>
Je voudrais ne changer que des orientations d'objets sur l'écran et non les autres. p>
Quels délégués dois-je utiliser etc. p>
acclamations -Un Newbie P>
6 Réponses :
WillroTatateTointerfaceOrientation: est la méthode que vous envisagez éventuellement. Lisez sur celui-là. P>
uiviewcontroller code > s sont envoyés WillroTateTointerFaceOrientation: Durée: code> juste avant la rotation et DidrotatefrominterfaceOrientation: après rotation. p>
Pour configurer des animations supplémentaires, utilisez WillanimaterotationTointTerfaceOrientation: Durée: code> ou WillanimateFiRSThalfaceOrientation: Durée: A >, didanimatefirsthalfofrotationToinTerfaceOrientation: code> et willanimatesecondhalfofrotationFrominterfaceOrientation: durée: code> . Ces derniers sont utilisés pour des animations en deux étapes, que vous utilisez généralement lorsque vous avez des vues d'en-tête ou de pied de page qui sont déplacées hors écran pour l'animation de transition principale. P>
dépend lorsque vous souhaitez réagir: strong> si avant la rotation, Remplacement fort> à partir d'UIVIEWCONTROLLER: P> - (void)didRotateFromInterfaceOrientation:(UIInterfaceOrientation)fromInterfaceOrientation
{
// do something after rotation
}
Ces méthodes ont été obsolètes.
Obsolète dans iOS 8.0
Si vous utilisez déjà une UIViewController, implémentez certaines des méthodes d'orientation liées, sinon vous inscrivez-vous aux notifications Uidevice. La méthode UIViewController la plus importante est uidevice code> messages uideviceorientationdidchangenotification code> p>
uiapplication code> messages uiapplicationwillchangestatusbarorientationnotification code> et uiapplicationDidchangestatusbarorientationnotification code> et a un rappel de délégué associé pour chacun. P>
uiviewcontroller code> reçoit plusieurs appels liés à l'orientation déclenchés par la notification Uidevice si le contrôleur d'affichage fait partie de la hiérarchie du contrôleur gérée par une fenêtre. P>
DoTutoroTatoteTointerFaceOrientation Code> car si ce retour non code> Les autres ne sont pas appelés. P>
Je préfère m'inscrire en tant qu'observateur pour recevoir les notifications d'orientation. Donc, je vote cette réponse.
My Sandbox App: https://github.com/comonitos/programmatic_device_orientation
La solution est facile: P>
in Interface (fichier h): p> dans la mise en œuvre (fichier m): p> réécriture p>
- (BOOL) DOITOROTETATEINTOINTERFACEORIENTATION: (UIInterfaceOrientation) InterfaceOriencement
{
retour tourné;
} p> li>
ol> 2 appel [auto configuration] p>
Vous ne devriez pas faire beaucoup plus que de dire au système d'exploitation si vous prenez une modification d'orientation dans la méthode DOORATOROTATETERTERFACEORIENTATION CODE>. De plus, cela est obsolète dans IOS6. développeur.apple.com/library/ios/#documentation/uikit/referen CE / ... :
Ouais. c'est maintenant. à partir de là que je transforme des vues
Utilisez simplement cet extrait de code pour vérifier les modifications d'orientation.
override func viewWillTransitionToSize(size: CGSize, withTransitionCoordinator coordinator: UIViewControllerTransitionCoordinator) {
if UIDevice.currentDevice().orientation.isLandscape.boolValue {
print("Landscape")
} else {
print("Portrait")
}
}
Ceci est incorrect comme ViewWillTransitionTosize code> imprimera toujours le portrait dans ce cas lorsqu'il y a une transition du portrait au paysage.