2010-11-16 16 views
0

J'ai obtenu un UIView avec 2 sous-vues. UIView est défini sur UIViewAutoresizingFlexibleWidth. Maintenant, quand il entre dans layoutSubviews redimensionne les images du sous-vues par rapport à la UIView comme ceci:UIView change la largeur après avoir changé l'orientation en paysage?

rect.size.width = self.frame.size.width - rect.origin.x - textLabel.frame.origin.x; 

Mais un problème se produit en cause le mode paysage en mode portrait du self.frame.size.width (et limites pour ce question) répondre 768 au début et 788 après la rotation. Ce qui signifie quand il tourne, il semble ajouter 20pixels que je suppose est la barre d'état.

Lorsque je code dur 768, tout fonctionne comme prévu. Mais je ne veux pas ça bien sûr. Je pourrais stocker l'état initial dans un var et l'utiliser, mais je ne pense pas que ce soit la bonne façon de le faire.

Quelqu'un at-il une solution?

Répondre

0

Salutations,

Dans mon application J'ai été confronté au même problème. Pour le résoudre, j'ai simplement utilisé la méthode didRotateFromInterfaceOrientation: pour redimensionner la vue lors de la rotation de l'appareil.

self.view.frame = CGRectMake(0,0,self.view.bounds.size.width,self.view.bounds.size.height);

Espérons que cela aidera.