2010-08-21 3 views
1

J'ai le problème suivant. J'ai une application iPhone et je veux passer à l'universel Lorsque je fais cela, je reçois le MainWindow-iPad.xib attendu. Mais la taille de la fenêtre est codée en dur à 320x480. De plus, il n'y a pas de vue dans la fenêtre. Je rouge, cela devrait être automatiquement de la taille de l'iPad, donc je suppose que je fais quelque chose de mal. Qu'est-ce qui me manque exactement? merci d'avancemise à niveau vers l'application universelle - taille de mainWindow-iPad est 320x480

Répondre

1

Oui, les dimensions d'un objet UIWindow sont codées en dur à la taille de l'écran de l'iPhone. Cela me déroutait aussi, jusqu'à ce que je réalise qu'il y avait une option pour le redimensionner: sélectionnez l'objet UIWindow dans le fichier .xib dans Interface Builder ... dans le panneau Attributs, assurez-vous que la case "Plein écran au lancement" est cochée. Comme le dit St3fan, vous aurez probablement besoin d'une fenêtre principale spécifique .xib pour la construction de votre iPad.

Voir ma réponse à:

UITabBar unresponsive on iPad

+0

maintenant im confused :-) J'ai ce MainWindow-iPad.xib. Plein écran au lancement est activé - mais il est toujours 320x480. Donc, une sous-vue, je ne peux pas être plus grand, non? Et btw: dans le MainWindow-iPad.xib il y a aussi mon viewcontroller original. Donc, quand je lance l'émulateur de l'iPad, il me montre essentiellement la version de l'iPhone dans le coin supérieur gauche de l'iPad Simulator. (au moins, il est encore entièrement fonctionnel :-) Désolé si je ne comprends pas le point :-) – HeikoG

+0

wooowww son travail pour moi! – Sudhanshu

0

Vous aurez probablement aussi besoin de créer un MainWindow-iphone.xib et MainWindow-ipad.xib.

+0

HMM. D'accord. xcode a créé le MainWindow-iPad.xib pour moi, non? et j'ai le mainWindow.xib d'origine. est-ce ok jusqu'ici? – HeikoG

1

Je suis cela. Je l'ai corrigé en supprimant l'ipad xib créé automatiquement, puis en ouvrant le xib d'origine dans le constructeur de l'interface et en choisissant l'option convertir en iPad dans le menu. Ensuite, ni l'a sauvegardé avec le nom -iPad et l'a ajouté à la cible corrigée.

+0

hey, ça l'a fait - Merci beaucoup. Mais une chose de plus> J'ai ce MainWindow/iPad.xib et dans plist mz est le nom de base de fichier nib principal iPad mis à son nom. Mais quand je lance en émulateur iPad, il semble toujours charger la version de l'iphone dans le coin supérieur gauche. – HeikoG

+0

ok.Je l'ai corrigé en créant une version iPad du ViewController avec IB, puis j'ai sauvegardé les classes, sauvegardé la plume et ensuite construit le contenu de la plume de MainWindow-iPad.xib à partir de zéro. merci pour toute l'aide :-) – HeikoG

0

J'ai eu un problème similaire avec une application GLES - en utilisant EAGLView, d'une manière similaire à tous les exemples, mais qui veut prendre en charge iphone3, iphone4 et ipad. Dans ma création de contexte depuis [EAGLView initWithCoder], je forçais le rectangle de eaglLayer à correspondre à l'écran principal, ce qui fonctionnait pour iphone et iphone4 (ie me donnait une surface gl de 320x480 ou 640x960), mais pour ipad, cela donnait moi une surface de 768x1024 qui a été recadrée sur le présent à 640x960. En fait, l'option "Plein écran au lancement" semble être appliquée APRÈS la vue (EAGLView, dans mon cas) initWithCoder. Ma solution était de ne rien faire dans le [initWithCoder] EAGLView, et d'initialiser seulement ma vue après l'appel de didFinishLaunchingWithOptions de AppDelegate, dans l'appel de layoutSubviews.

HTH,

fourches