J'ai une iPhone
application qui a un storyboard. Maintenant, je veux également fournir une iPad
application. J'ai donc demandé s'il y avait une fonction qui m'aide à convertir mon iPhone
storyboard en iPad
storyboard.
Pour être précis:
Existe-t-il une fonction similaire ou existe-t-il uniquement de manière manuelle?
Réponses:
J'ai trouvé une sorte de solution:
Dupliquez votre Storyboard iPhone et renommez-le
MainStoryboard_iPad.storyboard
Fermez Xcode, puis ouvrez ce fichier dans n'importe quel éditeur de texte.
Recherchez
targetRuntime="iOS.CocoaTouch"
et remplacez-le partargetRuntime="iOS.CocoaTouch.iPad"
Changez le code dans le MainStoryboard_iPad.storyboard de:
<simulatedScreenMetrics key="destination" type="retina4"/>
à<simulatedScreenMetrics key="destination"/>
Maintenant, enregistrez tout et rouvrez Xcode. L'iPad-Storyboard a le même contenu que le fichier iPhone, mais tout pourrait être perturbé.
Cela m'a fait gagner des heures - j'espère que cela vous aidera
la source
start a bounty
sous la question, sélectionnez la quantité souhaitée etReward existing answer
...<simulatedScreenMetrics key="destination" type="retina4"/>
à<simulatedScreenMetrics key="destination"/>
Si vous aviez créé un projet universel, par défaut un storyboard iPad vide aurait été créé, il vous suffit de sélectionner le storyboard iPhone tout sélectionner (Commande + A), de copier (Commande + C) et de le coller sur le storyboard iPad. Assurez-vous de déplacer le point d'entrée du storyboard vide vers le storyboard nouvellement copié avant la compilation.
la source
Cela n'a pas vraiment fonctionné pour moi. J'ai fait quelque chose d'un peu différent.
<scenes> <!--Contents View Controller-->
</class> </classes>
Cela a fonctionné pour moi. J'ai obtenu une nouvelle mise en page avec tous mes points de vente connectés, ce qui m'a fait gagner quelques heures à lui seul.
la source
.storyboard
fichiers et cliquezOpen As > Source Code
pour afficher le XML brut.En lisant de nombreux threads sur stackoverflow, j'ai découvert que la solution est-
1. Dupliquez votre Storyboard iPhone et renommez-le MainStoryboard_iPad.storyboard
2. cliquez avec le bouton droit sur le storyboard -> «ouvrir en tant que» -> «Code source».
3.Recherchez targetRuntime = "iOS.CocoaTouch" et changez-le en targetRuntime = "iOS.CocoaTouch.iPad"
5.Rechercher
<simulatedScreenMetrics key="destination" type="retina4"/>
et remplacez-le par<simulatedScreenMetrics key="destination"/>
4.Maintenant, enregistrez tout et faites un clic droit sur MainStoryboard_iPad.storyboard «Ouvrir en tant que» -> «IOS StoryBoard» 5. Vous devrez peut-être également modifier vos contraintes. C'est tout ce que vous avez fait.
la source
la source
1 - Créez votre
"MainStoryboard_iPad.storyboard";
2 - Faites un clic droit sur vous
"MainStoryboard_iPhone.storyboard"
et "Ouvrir en tant que -> Code source". Copiez tout;3- Faites un clic droit sur vous
"MainStoryboard_iPad.storyboard"
et "Ouvrir en tant que -> Code source". Collez tout. Maintenant, recherchez et modifiez:targetRuntime="iOS.CocoaTouch" to targetRuntime="iOS.CocoaTouch.iPad"
type="com.apple.InterfaceBuilder3.CocoaTouch.Storyboard.XIB" to type="com.apple.InterfaceBuilder3.CocoaTouch.Storyboard.iPad.XIB"
4 - Enregistrer. Maintenant rouvrez mais en utilisant le générateur d'interface. Vous n'aurez qu'à réorganiser.
Cette méthode peut également être utilisée pour les fichiers .xib
la source
Cela va dans l'autre sens, mais j'ai pu faire tout sélectionner et copier dans mon storyboard iPad (~ 35 scènes) et le coller dans mon storyboard iPhone. Les tailles de scène ont été automatiquement ajustées. Je n'ai vu que deux problèmes, j'ai dû remplacer UISplitViewController (car ce n'est que l'iPad), et l'arrière-plan par défaut est devenu transparent au lieu de gris (toujours en train de corriger cela correctement, sans définir manuellement l'arrière-plan pour tout).
EDIT: Il semble que l'arrière-plan par défaut pour UITableView dans l'inspecteur des attributs soit plutôt étrange. J'ai dû définir manuellement l'arrière-plan sur «Group Table View Background Color» pour les vues de table groupées et «White Color» pour les vues de table non groupées. Il a ensuite été affiché comme "par défaut" (je suppose qu'il correspondait alors à une valeur codée en dur). - En fait, encore plus facile, le passage de "Groupé" à "Statique" et inversement semble réinitialiser la couleur par défaut.
la source
Voici quelque chose qui m'a fait gagner des heures et pourrait aider ceux d'entre vous ayant des compétences en Python.
Je construis une application depuis deux mois, axée uniquement sur l'iPad en itérant l'UX avec l'équipe.
Aujourd'hui, je me suis concentré sur la création de la version iPhone, j'ai suivi les étapes ci-dessus (merci!) Mais je ne voulais pas avoir à redimensionner tous les éléments de l'interface utilisateur à partir des dimensions de l'iPad dans l'éditeur de storyboard visuel.
J'ai donc écrit ce petit script de gabarit en python pour parcourir le fichier de storyboard pour x, y, largeur, hauteur et tout réduire par le rapport 320./768. Me permet alors de me concentrer uniquement sur les réglages fins.
Copiez votre storyboard iPad dans un nouveau fichier. (par exemple iPhoneStoryboard.storyboard)
Exécutez le script ci-dessous avec le nom de fichier du storyboard copié comme premier paramètre.
Générera un fichier de sortie avec le suffixe _adjusted.storyboard (par exemple iPhoneStoryboard.storyboard_adjusted.storyboard)
J'espère que ça aide...
la source
Accédez à votre Résumé cible et changez les appareils en universels, puis descendez et définissez la version de l'ipad sur n'importe quel storyboard que vous aimez, y compris un copié et renommé si vous le souhaitez.
la source
Juste une petite note pour ceux qui ont peut-être eu mon problème avec ceci:
Mon problème:
Le contenu du storyboard a bien été copié dans un nouveau fichier de forum que j'ai ajouté. Cependant, cela n'apporterait pas de modifications à mon iPad provisionné. Remarquant que je devais basculer sur le storyboard désigné pour la cible de construction (voir image) laisser les changements apparaître.
Je publierais une image si j'avais les points, mais le réglage est situé dans:
Navigateur de projet dans le menu source de gauche, cible racine de l'onglet général du projet (volet central), (deuxième sous-titre) infos de déploiement, avec l'onglet du bouton iPad sélectionné.
De là, choisissez votre storyboard sous "interface principale".
Merci pour le message, j'espère que cette mention aidera quelque part.
la source
Juste pour le plaisir, sur XCode 5.1 et iOS 7.1, je devais également changer les valeurs de "toolVersion" et "systemVersion" en ceci:
Sans cela, le nouveau fichier de storyboard ne serait pas compilé
la source
En utilisant les classes de taille XCode6, vous n'avez plus besoin de convertir le storyboard en iPad. Le même Storyboard peut être utilisé pour l'iPhone et l'iPad, vous évitant de garder deux fichiers à jour.
Le storyboard résultant est compatible avec iOS7 +.
En savoir plus à ce sujet ici: https://developer.apple.com/library/ios/recipes/xcode_help-IB_adaptive_sizes/chapters/AboutAdaptiveSizeDesign.html#//apple_ref/doc/uid/TP40014436-CH6-SW1
Utilisez des classes de taille pour permettre à un storyboard ou à un fichier xib de fonctionner avec toutes les tailles d'écran disponibles. Cela permet à l'interface utilisateur de votre application de fonctionner sur n'importe quel appareil iOS.
la source
Pour Xcode10
Il suffit de dupliquer
Main.storyboard
Renommez ensuite les fichiers
Main_iPad.storyboard
etMain_iPone.storyboard
Définissez les noms appropriés dans
.plist
4.Juste sélectionnez le .storyboard approprié à configurer
la source
Cette fonctionnalité est désormais intégrée. Par exemple, si l'on modifie les paramètres du projet dans Deployment Info -> Devices from iPhone to Universal, la boîte de dialogue suivante apparaîtra:
la source
J'ai suivi ce fil quand j'ai été touché par le même problème hier. Les étapes que j'ai suivies
targetRuntime="iOS.CocoaTouch"
partargetRuntime="iOS.CocoaTouch.iPad"
<simulatedScreenMetrics key="destination" type="retina4"/>
à<simulatedScreenMetrics key="destination"/>
C'était tout .. Merci à tous pour votre aide ..
la source
Le moyen le plus simple et le plus fiable de le faire est de copier-coller à partir de votre storyboard iPad.
Vous devrez procéder au redimensionnement, mais cela peut être plus rapide que de recréer tout le storyboard.
la source
Il existe une solution très simple pour les versions Xcode qui prennent en charge les classes de taille (Testé dans Xcode 7 qui est la version actuelle au moment de la rédaction). Cochez la case "Utiliser les classes de taille" sur un fichier de storyboard ( inspecteur de fichiers ), confirmez cette boîte de dialogue qui apparaît. Décochez ensuite cette même case - Xcode vous demandera si vous souhaitez utiliser ce storyboard avec un iPhone ou un iPad, et convertira les écrans en conséquence. Pas besoin de modifier directement le fichier de storyboard . Pour iPad et iPhone, copiez simplement le même storyboard et configurez-en un pour iPad et un pour iPhone en utilisant la méthode décrite.
Et avant que quelqu'un ne suggère d'utiliser des classes de taille - bien que géniales, elles sont moins pratiques pour une interface utilisateur fortement personnalisée, comme les jeux, etc.
la source
Une approche différente
Ajouter un contrôleur de vue vide avec un contrôleur de navigation dans le Storyboard iPad
Remplacez la classe par la classe de votre premier ViewController utilisé pour iPhone, "fooViewController"
Ajoutez le Storyboard-Identifier dans le Storyboard iPhone "fooViewController_storyboard_identifier" pour le premier ViewController
Allez dans "fooViewController.m"
Ajouter bool Variable bool
nibWasLoadForIpad=false
Allez à
viewDidLoad
-Méthode(Ps. Le problème est que les arrière-plans de la vue seront définis en blanc)
la source
Vous devez créer un rapport de bogue avec Apple. Vous pouvez dire que c'est un double du mien (10167030) qui est ouvert depuis septembre 2011. Ce qui est frustrant de mon point de vue, c'est que la fonctionnalité existait dans Xcode 3 ...
la source
Merci pour les réponses à tous.
J'ai suivi les étapes ci-dessus mais lorsque j'ai exécuté l'application sous le simulateur ou mon iPad, elle a continué à utiliser le storyboard iPhone.
Pour une raison quelconque, lorsque j'ai changé l'appareil cible pour qu'il soit universel au lieu d'iPhone, Xcode (v5.0) n'a pas mis à jour le fichier app-Info.plist pour inclure le storyboard iPad, j'ai donc dû ajouter manuellement l'entrée suivante ( en utilisant l'éditeur plist dans Xcode):
Nom de la base du fichier de storyboard principal (iPad) ==> MainStoryboard_iPad
la source
Je change juste (en plus de la réponse de @tharkay):
et fonctionne très bien!
J'utilise ceci dans XCode 8.3.3
la source