xcode 4.5 comment choisir les storyboards au lancement
Essayer de faire de mon application fonctionne avec l'iPhone 5 et l'iPhone 4/4s. J'ai essayé la "mise en forme automatique", mais ne semble pas fonctionner pour mon app lu aussi qu'il n'est pas pris en charge dans iOS 5. Mise en page automatique spécifiquement échoue sur une vue contrôleur qui a un UIScrollview et un UIPicker qui est de la taille dans le code. Avoir deux Storyboards un pour de 4 pouces et d'un 3,5 pouces semble la voie à suivre.
Les deux Storyboard aproch semblent être la solution pour moi. Donc cela me laisse avec deux questions;
-
Où devrait le code pour détecter puis si c'est un 4/4s/5 aller? Je suppose que dans l'appDelegate.m dans le didFinishLaunchingWithOptions méthode
-
Comment puis-je changer le "Storyboard"?
- Vous devriez également envisager d'utiliser des ressorts et des entretoises pour redimensionner votre point de vue au lieu de dupliquer votre storyboard, surtout si tout ce qui est en train de changer la mise en page. Il pourrait facilement conduire à beaucoup plus maintenable solution, et soutiendra les versions précédentes d'iOS.
- En utilisant les réponses fournies, j'ai créé une catégorie pour rendre cela plus facile -- gist.github.com/4003438
- ne pouvait pas être plus facile ... stackoverflow.com/a/13040627/294884 ou stackoverflow.com/a/12799462/294884
Vous devez vous connecter pour publier un commentaire.
C'est une grande question.
Ce que vous devez faire est,
Sélectionnez votre 4/4s storyboard, allez dans Fichier, dupliquer, puis de lui donner un iPhone 5 nom spécifique.
Assurez-vous que la Cible et le nom de votre appli est cochée.
Ensuite, vous devez sélectionner les scènes dans votre scénario et dans les Attributs de l'Inspecteur de modifier la taille de la Rétine 4 en Plein Écran.
Cela vous permet de réorganiser tout pour cet affichage.
Enfin, en application didFinishLaunchingWithOptions collez le code suivant avec le storyboard nom que vous avez donné pour votre 4 pouces storyboard.
Si quelqu'un ne comprends pas comment faire étape 1, procédez comme ci-dessous.
Aller au Projet de répertoire et copiez-collez le
MainStoryboard.storyboard
et renommer le nouveau storyboard-à-direMainStoryboard5.storyboard
.Ajouter ce nouveau storyboard
MainStoryboard5.storyboard
dans le projet (dans Xcode) en cliquant droit sur le Projet et en cliquant surAdd Files to ....
Maintenant, nous avons deux storyboards dans xcode.
Astuce
Vous pourriez avoir à utiliser de Produit "> Propre " pour que cela fonctionne après que vous avez fait tous les ci-dessus.
Actuellement, la seule façon est de vérifier si vous utilisez l'iPhone 5 est le
[UIScreen mainScreen] bounds]
et[[UIScreen mainScreen] scale]
.Cela ne fonctionne que si vous avez au moins ajouter un
[email protected]
image de lancement de votre application. Sinon, ce renverra toujours false. (Parce que l'écran sera letterbox si vous n'avez pas l'image de lancement)Pour définir la table de montage séquentiel pour votre iPhone 5 de la version que vous voudrez peut-être jeter un oeil à cette question
J'ai pris l'inspiration sur les champs.cage de réponse et l'adapter à mon code, il fonctionne très bien. Merci !!
Ce que j'ai fait récemment, c'est l'ajout d'un définir instruction dans toutes les classes j'ai besoin de vérifier l'appareil. Cela peut aussi être fait à l'échelle mondiale fichiers d'en-tête.
Le bool test est de Détecter iphone 5 écran de 4" .
Cela fonctionne à merveille si vous utilisez déjà des story-boards, et que vous souhaitez uniquement modifier le storyboard de la valeur par défaut que votre projet a commencé avec pour iPhone 5 appareils. Si vous commencez à partir de zéro avec un non-Storyboard projet, vous pouvez le faire de cette façon.
Quand je commence un projet, maintenant j'ai de la conception de l'iPhone 3.5" version dans les storyboards (Si j'utilise les storyboards), puis, quand je suis fait avec ce design, je vais dans mes fichiers de projet et de trouver le storyboard de fichier. Depuis un storyboard fichier est juste un XML fichier de mise en page, je peux prendre ce fichier et de le charger dans mon éditeur de texte favori et changer les deux balises.
Convertir iPhone iPad
targetRuntime="iOS.CocoaTouch
"targetRuntime="iOS.CocoaTouch.iPad"
<simulatedScreenMetrics key="destination" type="retina4"/>
<simulatedScreenMetrics key="destination"/>
Le dernier élément n'apparaît que si le principal de votre storyboard fichier de configuration pour le 4" écran de l'iPhone.
Ce qui est important ici est de savoir si votre seul l'ajout d'un iPhone 5 à un projet existant, vous avez uniquement besoin de vérifier d'abord à remplacer la valeur par défaut, et de la charge spéciale de votre storyboard fichier. C'est littéralement m'a sauvé d'avoir à manuellement la disposition de tous les objets dans le code pour l'iPhone 5.
La première un très bon Travail est simple et clair, mais pour tous, si vous souhaitez intégrer multiplier les dispositifs d'oeil ici:
Créer un projet pour iPhone5 avec un scénario nommé
iPhone5_Storyboard.
Près d'application et à l'intérieur d'un dossier de cloner le Principal
L'histoire iPhone5_Storyboard et renommer à iPhone4_Storyboard pas oublier de changer de taille et de réorganiser tous les objets à l'intérieur de xcode, interface builder.
En option si vous voulez une version Universelle, à l'intérieur de xcode utilisation Ajouter un Fichier
et l'ajout de nouvelles Storyboard cible VIDE pour l'iPad, l'ope de l'onu
iphone5_storyboard utiliser CMD+A et de le copier et de le coller dans le Vide
Histoire pour iPad (nécessité de réorganiser l'objet, mais est lié et de travail).
Dans Xcode en vertu de l'OBJECTIF fixé Application Universelle et la mise sous MainStoryboard vous iPhone5_Storyboard, en vertu de l'iPad Principal de l'Histoire iPad_Storyboard.
Maintenant GRÂCE À UNE PREMIÈRE RÉPONSE DE CE POST nous avons à mettre en œuvre tous différents d'une Histoire en utilisant ce code à l'intérieur d'un AppDelegate.m:
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
Ça y est nous avons maintenant une Application universelle pour iPhone 3/3Gs/4/4s/5 iPod (AllGen) iPad 1/2/3/4 Mini et Retina
Merci les gars