2010-09-13 7 views
0

Voici ce que j'essaie de faire.iPhone/iOS SDK: autorotate vue principale, mais pas vue enfant?

J'ai une vue unique ("primaryView"), contrôlée par un contrôleur de vue personnalisé. primaryView contient un scrollview, qui contient une image. Assis au sommet de la vue de défilement (PAS à l'intérieur) est une petite vue ("buttonsView") contenant quelques boutons. Fondamentalement, lorsque l'utilisateur fait pivoter le téléphone, je veux que les boutonsView autorisent pour correspondre à la nouvelle orientation, mais je veux que le scrollview reste exactement comme il est, et ne tourne pas.

Existe-t-il un moyen de le faire? À l'heure actuelle, primaryView est autorotating, et en prenant les deux sous-vues (le scrollview et buttonsView) avec elle, ce qui n'est pas bon.

Merci!

Répondre

1

Le système ne peut pas effectuer une autorotation à moins que toutes les vues visibles autorisent l'autorotation. Ce que vous pouvez faire, alors, est de détecter les changements d'orientation, et de définir une transformation affine appropriée pour les vues non rotatives, essentiellement pour annuler la rotation du système.

Vous pouvez utiliser willRotateToInterfaceOrientation:duration: pour faire disparaître les contrôles, puis didRotateFromInterfaceOrientation: pour les replacer à l'emplacement correct.

+0

Je veux m'assurer que la vue dont je défais la rotation ne va pas avoir l'air de tourner puis de tourner en arrière ... comment m'assurer que l'animation ne se produit pas pour cette vue? – DanM

+0

Voir la nouvelle édition. –

Questions connexes