2011-05-18 3 views
8

J'ai une application iPad qui présente une vue modale. Je voudrais faire une manipulation programmatique des contrôles de la vue modale, mais je ne trouve pas le moyen d'obtenir la taille de la vue modale. Si j'appelle View.Bounds ou View.Frame, cela me donne les limites/le cadre pour l'ensemble de l'écran (c'est-à-dire 1024x768) - mais je sais, en me mesurant, que la vue modale est en réalité à peu près 540x620. Même si je sais que je peux coder en dur cela en moi-même, cela me fait me sentir sale ... y a-t-il une manière programmatique pour une vue modale d'obtenir sa propre taille 'réelle'?Déterminer par programme la taille d'une vue modale de l'iPad

Merci

John

+0

pouvez-vous poster le code pour ce que vous faites pour l'obtenir? –

+0

Je ne suis pas sûr de ce que vous demandez - J'essaie de savoir quel est le code pour obtenir la taille, je ne l'ai pas déjà écrit ... – John

Répondre

8

Merci. Le problème était en fait que j'essayais d'obtenir la taille dans la méthode ViewDidLoad, plutôt que ViewDidAppear (que l'on m'obtient toujours ...). Dans ViewDidLoad, il retournait la taille 1024x768, mais quand j'ai déplacé mon code dans ViewDidAppear, il a commencé à retourner la bonne taille (540x620)!

4

Avez-vous essayé d'installer modalPresentationStyle?

modalController.modalPresentationStyle = UIModalPresentationFormSheet; 

Ensuite, vous devriez obtenir la taille d'image correcte (540 x 620) de modalController.view.frame.

+8

Merci. Le problème était en fait que j'essayais d'obtenir la taille dans la méthode ViewDidLoad, plutôt que ViewDidAppear (que l'on m'obtient toujours ...). Dans ViewDidLoad, il retournait la taille 1024x768, mais quand j'ai déplacé mon code dans ViewDidAppear, il a commencé à retourner la bonne taille (540x620)! – John

+1

@John Ce commentaire m'a fait comprendre pourquoi j'avais souvent des problèmes avec l'obtention et la définition de la taille de la vue. Je suppose que cette information est écrite quelque part dans le document Apple aussi. Quoi qu'il en soit, je pense que vous auriez dû créer une réponse (puisque c'est ce que c'est) au lieu d'écrire un commentaire. – Luka

+0

Bonne idée - merci. – John

Questions connexes