6
votes

Y a-t-il un moyen d'attraper un événement WillrotateTointTerfaceOrientation d'un UIView?

Chaque UIViewController a une méthode appelée WillrotateTointerface.

est-il possible de le faire dans un UIView aussi?

Est-ce que cela correspond à l'idée de contrôleur de vue du modèle?

Le seul moyen de penser est d'envoyer l'événement à partir de l'UIViewController à UIView.

existe une variable globale pour l'orientation actuelle?


0 commentaires

3 Réponses :


17
votes

Observer UideviceOrientationDidChangenotification : xxx

Référence de la classe Uidevice

Je dois noter que vous devez ajouter -BegingeneratingDeviceOrientationNotifications lorsque vous voulez ces notifications Soyez envoyé et appelez -endGeneratingDeviceOrientationationnotiformation quand vous voulez qu'ils s'arrêtent. Il y a un impact sur la batterie de les générer, de sorte que vous ne devriez donc le faire que lorsque votre vue est à l'écran. UIVIEWCONTROLLER Est-ce que tout cela pour vous, donc si vous avez un contrôleur d'affichage, il convient de le laisser faire le travail.


0 commentaires

2
votes

Vous pouvez vous abonner à une notification globale et obtenir un appel lorsque l'appareil est tourné, il ne fera rien pour vous ..

[NSNotificationCenter defaultCenter] addObserver:self
selector:@selector(didRotate:)
name:@"UIDeviceOrientationDidChangeNotification" object:nil];


0 commentaires

3
votes

Si vous souhaitez simplement ajuster la vue à la nouvelle taille / mise en page lorsque vous modifiez l'orientation, vous devriez simplement remplacer sa méthode LayouTouSubviews .

On appellera chaque fois que la taille de la vue change, ce qui se produit généralement lorsque la vue est tournée.


1 commentaires

Ce serait une solution parfaite si les modifications apportées dans un appel SmecouTouSubviews étaient animées.