2010-12-11 17 views
0

Il est assez frustrant de ne pas être capable de faire une tâche aussi simple: j'ai une "application" avec un seul contrôleur de vue, et une seule UIImageView, qui est initialisée à une image spécifique en mode potrtait. Maintenant, lorsque l'iPhone est passé en mode paysage et que l'événement shouldAutorotateToInterfaceOrientation se déclenche, auquel je retourne YES, l'UIImageView qui en résulte semble complètement foiré: soit l'image est étirée pour remplir le cadre en mode paysage (ce qui semble ridicule bien sûr) ou le haut et le bas de l'image sont recadrés.Comment faire pivoter un UIImageView?

Comment puis-je faire en sorte que mon UIImageview et l'image contenue gèrent correctement la rotation du périphérique et affichent également une image d'aspect normal en mode paysage?

Répondre

2

Définissez le parent parent de la vue UIViewautoresizesSubviews à YES.

a également établi le autoresizingMask de la vue de l'image à UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight

+0

Merci et en effet l'image n'est plus stellaire. – jkally

+0

Mais ce n'est pas l'image complète non plus – jkally

+0

En mode paysage, il montre juste la moitié supérieure de l'image – jkally

0

vous voulez aussi regarder dans la contentMode de votre UIImageView. aspectFill et aspectFit se comportent très différemment.

0

Vous pouvez toujours sous-classer UIView et remplacer la méthode layoutSubviews pour disposer manuellement vos sous-vues. La transition vers le paysage sera toujours animée, et vous pouvez faire ce que vous voulez avec les sous-vues.

+0

BTW, vous devrez définir le contentMode à 'UIViewContentModeRedraw' –