2010-09-16 6 views
1

Obtenir les limites d'une vue rect tout en paysage retourne mode de mauvaises tailles:mode paysage iPhone retourne vue incorrecte taille

(. Je sais qu'il ya eu beaucoup de messages sur le mode paysage, mais rien sur ce problème)

À partir d'un nouveau projet de modèle UIView, j'ajoute un seul UIView au ViewController dans Interface Builder (en mode paysage) et je règle la taille de la vue sur width = 400, height = 200; Cependant, lorsque j'ajoute un point d'arrêt dans le ViewController Code: - (void) viewDidAppear: (BOOL) animé { CGRect viewRect = [bornes de testView]; } les tailles sont w = 220, h = 380! (Même si la vue est clairement correcte sur l'écran)

En myViewController.m je me suis fixé:

- (BOOL)shouldAutorotateToInterfaceOrientation: 
(UIInterfaceOrientation)interfaceOrientation { 
return (interfaceOrientation == UIInterfaceOrientationLandscapeRight); // home button on right 
} 

Dans myAppDelegate.m

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {  
application.statusBarOrientation = UIInterfaceOrientationLandscapeRight; //home on right 
    [window addSubview:viewController.view]; 
    [window makeKeyAndVisible]; 
    return YES; 
} 

et dans le info.plist J'ai défini: Orientation de l'interface initiale = Paysage (bouton de la maison droite)

Je suis Je ne suis pas essayant de faire tourner la vie w avec l'iPhone, il est destiné à être fixé en mode paysage uniquement.

Y a-t-il une solution de contournement pour cela? J'ai besoin de créer des calayers en fonction de la taille d'affichage correcte.

Merci

Steve

Répondre

1

Sons comme une question liée à barres d'état. Cela dit, je n'ai pas de bonne solution pour vous.

En plus de regarder le cadre, vous pouvez regarder les limites. Parfois, cela donne de meilleures informations.

+1

Merci pour votre réponse. Il s'est avéré que j'avais des 'Autosize subviews' sur le contrôleur de la vue principale. Des choses évidentes, mais comme il n'y avait pas de redimensionnement, je ne sais pas pourquoi cela devrait faire la différence, mais ça l'a guéri. – Steve555

Questions connexes