2011-06-25 5 views
0

J'ai une sous-classe UIView personnalisée sans UIViewController correspondant. J'utilise cette classe à divers endroits dans mon application. Lorsque je fais pivoter l'appareil, j'ai besoin de repositionner la vue. Je comprends que cela est normalement fait avec la méthode willAnimateRotationToInterfaceOrientation:duration:, mais c'est une partie de la classe UIViewController et non UIView. Ma question est la suivante: Existe-t-il un moyen pour mon UIView de se repositionner sans avoir à implémenter un UIViewController correspondant?position de UIView après rotation

Répondre

1

votre application reçoit des notifications du périphérique lors de la rotation. vous pouvez indiquer à l'appareil de commencer à générer ces notifications pour vous en utilisant

[[UIDevice currentDevice] beginGeneratingDeviceOrientationNotifications];

et vous pouvez vous inscrire à la notification à l'aide

[défaut NSNotificationCenter] addObserver: sélecteur auto: @selector (nom :) doThisWhenRotates: addObserver: sélecteur: Nom: objet: objet: nil]; Cependant, je ne le recommanderais pas. Si vous voulez vraiment suivre MVC, vous devriez avoir un contrôleur pour gérer ce type de choses pour la vue.

mais si vous en avez besoin, vous pouvez le faire comme indiqué ci-dessus.

+0

Je suppose que UIAlertView et UIActionSheetView le font avec le paramètre autoResizeMask car ils sont positionnés par rapport à la fenêtre. Dans mon cas, j'ai besoin de positionner quelque chose par rapport à navigationBar, et cela change la hauteur quand vous faites une rotation. Merci de votre aide. – chris

Questions connexes