Comment faites-vous? J'ai vu un didacticiel vidéo dessus, mais l'écran était trop petit. En plus de changer la taille de la vue, y a-t-il d'autres changements majeurs que je devrais apporter à mes applications iPhone pour les convertir en iPad?
Supposons que vous ayez le SDK avec Xcode,
J'ai pu le réduire à quelques choses, voici donc les étapes qui ont fonctionné pour moi:
1) Faites une copie du fichier iPhone xib et ajoutez-le à votre projet
2) Faites un clic droit sur le fichier (en xcode) et ouvrez en tant que> code source
3) La 2e ligne devrait ressembler à:
<archive type="com.Apple.InterfaceBuilder3.CocoaTouch.XIB" version="7.10">
Remplacer par:
<archive type="com.Apple.InterfaceBuilder3.CocoaTouch.iPad.XIB" version="7.10">
4) Recherchez "IBCocoaTouchFramework" et remplacez toutes les occurrences par "IBIPadFramework"
5) Enregistrez le fichier et ouvrez-le sous> Interface Builder - iOS
Le fichier peut toujours ressembler à un iPhone xib normal, mais pour moi, une fois que j'ai changé la barre d'état en "Noir" dans l'inspecteur des attributs, le reste du xib vient de "s'enclencher" dans un iPad xib
Dans Xcode 5, vous devez simplement:
Trouver:
<document type="com.Apple.InterfaceBuilder3.CocoaTouch.XIB" version="3.0" toolsVersion="4510" systemVersion="12F37" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none">
Remplacer par:
<document type="com.Apple.InterfaceBuilder3.CocoaTouch.iPad.XIB" version="3.0" toolsVersion="4510" systemVersion="12F37" targetRuntime="iOS.CocoaTouch.iPad" propertyAccessControl="none">
Notez que nous ajoutons juste . IPad aux propriétés type
et targetRuntime
.
Après ouverture, sélectionnez simplement une nouvelle taille à ajuster. Exemple: iPad plein écran.
XCode4:
Dans xcode 4, nous ne pouvons pas le faire pour un seul xib, mais nous pouvons créer les versions respectives de l'ipad en une seule fois.
Avant de configurer votre projet sur iPad, lorsqu'il est configuré uniquement pour iPhone, faites un clic droit sur la cible et cliquez sur dupliquer.
Maintenant, sélectionnez "dupliquer et passer à l'ipad". Une nouvelle cible et un nouvel ensemble de xibs sont créés. Cela devrait réduire le travail.
J'espère que ça aide.
Xcode 4:
La fonction Créer une version iPad à l'aide de masques de redimensionnement automatique a été supprimée de Xcode 4. À l'heure actuelle, la façon la plus simple consiste à utiliser Xcode 3 pour la conversion, car la plume (.xib) le format de fichier n'a pas changé.
Xcode 3 & 4 peut désormais être installé sur le même système en sélectionnant simplement un dossier différent (voir les instructions d'installation sur l'image disque).
Sinon, vous devrez copier/coller les éléments de l'interface utilisateur de la version iPhone et les lier à nouveau à votre code.
Qu'en est-il de laisser l'ordinateur faire le travail de l'ordinateur?
Plus rapide, moins de risques d'erreurs.
Voici un workflow basé sur le excellente réponse de Jag , mais automatisé avec sed.
Tout d'abord, configurons quelques trucs. Nous n'aurons besoin de le faire qu'une seule fois.
Dans le répertoire qui contient vos XIB, créez deux fichiers avec le contenu suivant:
Fichier iPhoneToiPadXIBConversion.sed
:
s/com.Apple.InterfaceBuilder3.CocoaTouch.XIB/com.Apple.InterfaceBuilder3.CocoaTouch.iPad.XIB/g
s/IBCocoaTouchFramework/IBIPadFramework/g
et fichier iPadToiPhoneXIBConversion.sed
:
s/com.Apple.InterfaceBuilder3.CocoaTouch.iPad.XIB/com.Apple.InterfaceBuilder3.CocoaTouch.XIB/g
s/IBIPadFramework/IBCocoaTouchFramework/g
La configuration est maintenant terminée. Pour convertir un XIB, entrez l'une des deux commandes suivantes dans le terminal:
Conversion iPhone vers iPad:
sed -f iPhoneToiPadXIBConversion.sed MyViewController~iphone.xib > MyViewController.xib
Conversion d'iPad en iPhone:
sed -f iPadToiPhoneXIBConversion.sed MyViewController.xib > MyViewController~iphone.xib
Juste pour le plaisir, créons deux fonctions en zsh, pour rendre la conversion encore plus simple:
function convertiPadXIBToiPhone () {
newXibName=`echo "$1" | /usr/bin/sed "s/.xib/~iphone.xib/"`
`/usr/bin/sed -f iPadToiPhoneXIBConversion.sed "$1" > "$newXibName"`
echo "Did convert $1 to $newXibName."
}
function convertiPhoneXIBToiPad () {
newXibName=`echo "$1" | /usr/bin/sed "s/~iphone.xib/.xib/"`
`/usr/bin/sed -f iPhoneToiPadXIBConversion.sed "$1" > "$newXibName"`
echo "Did convert $1 to $newXibName."
}
Après l'avoir ajouté à votre configuration zsh, la conversion d'un XIB est aussi simple que:
convertiPadXIBToiPhone MyViewController.xib
ou
convertiPhoneXIBToiPad MyViewController.xib
Ouvrez le XIB dans XCode 4 en utilisant "voir comme code source".
Sauvegardez la plume en question.
Remplacer cette glu
<string key="IBDocument.TargetRuntimeIdentifier">IBCocoaTouchFramework</string>
<object class="NSMutableDictionary" key="IBDocument.PluginDeclaredDependencyDefaults">
<string key="NS.key.0">com.Apple.InterfaceBuilder.CocoaTouchPlugin.iPhoneOS</string>
<integer value="1056" key="NS.object.0"/>
</object>
<object class="NSMutableDictionary" key="IBDocument.PluginDeclaredDevelopmentDependencies">
<string key="NS.key.0">com.Apple.InterfaceBuilder.CocoaTouchPlugin.InterfaceBuilder3</string>
<integer value="3100" key="NS.object.0"/>
</object>
<bool key="IBDocument.PluginDeclaredDependenciesTrackSystemTargetVersion">YES</bool>
<int key="IBDocument.defaultPropertyAccessControl">3</int>
<string key="IBCocoaTouchPluginVersion">301</string>
pour cet autre goo
<string key="IBDocument.TargetRuntimeIdentifier">IBIPadFramework</string>
<object class="NSMutableDictionary" key="IBDocument.PluginDeclaredDevelopmentDependencies">
<string key="NS.key.0">com.Apple.InterfaceBuilder.CocoaTouchPlugin.InterfaceBuilder3</string>
<integer value="3100" key="NS.object.0"/>
</object>
<bool key="IBDocument.PluginDeclaredDependenciesTrackSystemTargetVersion">YES</bool>
<int key="IBDocument.defaultPropertyAccessControl">3</int>
<string key="IBCocoaTouchPluginVersion">301</string>
Ensuite, pour chaque vue de la plume à l'aide de l'IB intégré, supprimez-la, puis appuyez sur Annuler.
Douche ensuite dans l'eau chaude pour essuyer cette sensation dégoûtante que vous pourriez avoir.
Vous pouvez ouvrir le XIB en tant que fichier texte et modifier la taille UIView:
Faites un clic droit sur votre fichier XIB dans le navigateur et sélectionnez: "Ouvrir en tant que ..." Ouvrir en tant que fichier source.
Recherchez la référence UIView et modifiez les valeurs de trame:
<object class="IBUIView" id="191373211">
<string key="NSFrame">{{0, 20}, {768, 1024}}</string>
Dans XCode 4.3.2, la façon la plus simple pour moi de créer une version iPad de xib est de dupliquer ce fichier xib et d'ajouter ~ipad
suffixe du nom de fichier. Et ajoutez à la fois "myVC.xib" et "myVC ~ ipad.xib" dans votre projet. Notez qu'il s'agit de "~ ipad" PAS "~ iPad". Votre application utilisera cette version ~ ipad automatiquement lorsqu'elle sera exécutée sur iPad. Cela fonctionne également avec les fichiers de ressources (par exemple, les images).
La meilleure référence que j'ai pu trouver en ce moment ... https://developer.Apple.com/library/ios/#documentation/Cocoa/Conceptual/LoadingResources/ImageSoundResources/ImageSoundResources.html
Mise à jour Xcode 5
targetRuntime = "iOS.CocoaTouch"
à
targetRuntime = "iOS.CocoaTouch.iPad"
Je vais documenter ce que j'ai fait dans Xcode 4.5:
fixpattern.sh
cp REPLACEME_Iphone.h REPLACEME_Ipad.h
sed -e 's/REPLACEME_Iphone/REPLACEME_Ipad/g' REPLACEME_Ipad.h > REPLACEME_Ipad_tmp.h
mv REPLACEME_Ipad_tmp.h REPLACEME_Ipad.h
cp REPLACEME_Iphone.m REPLACEME_Ipad.m
sed -e 's/REPLACEME_Iphone/REPLACEME_Ipad/g' REPLACEME_Ipad.m > REPLACEME_Ipad_tmp.m
mv REPLACEME_Ipad_tmp.m REPLACEME_Ipad.m
cp REPLACEME_Iphone.xib REPLACEME_Ipad.xib
sed -e 's/com.Apple.InterfaceBuilder3.CocoaTouch.XIB /com.Apple.InterfaceBuilder3.CocoaTouch.iPad.XIB/g' REPLACEME_Ipad.xib > REPLACEME_Ipad_tmp.xib
mv REPLACEME_Ipad_tmp.xib REPLACEME_Ipad.xib
sed -e 's/IBCocoaTouchFramework/IBIPadFramework/g' REPLACEME_Ipad.xib > REPLACEME_Ipad_tmp.xib
mv REPLACEME_Ipad_tmp.xib REPLACEME_Ipad.xib
sed -e 's/320, 416/768, 1004/g' REPLACEME_Ipad.xib > REPLACEME_Ipad_tmp.xib
mv REPLACEME_Ipad_tmp.xib REPLACEME_Ipad.xib
sed -e 's/REPLACEME_Iphone/REPLACEME_Ipad/g' REPLACEME_Ipad.xib > REPLACEME_Ipad_tmp.xib
mv REPLACEME_Ipad_tmp.xib REPLACEME_Ipad.xib
Créez une liste de fichiers que vous souhaitez convertir dans fixfile
, chaque ligne sera un nom de fichier sans extension. Si votre nom de fichier d'origine est AAA_Iphone.h
, il suffit de mettre AAA
. Si votre fichier d'origine ne correspond pas à ce modèle, vous devez réviser le script.
Exécuter en ligne de commande
cat fixfile | while read line ; do sed -e "s/REPLACEME/${line}/g" fixpattern.sh ; done > fixall.sh
Vérifier et exécuter fixall.sh
Ajouter un fichier nouvellement créé dans le projet
La réponse de Jag est excellente. Mais il y a un hic si un XIB est ouvert/créé dans Xcode 5.
Pour Xcode 5
1) Faites une copie du fichier iPhone xib et ajoutez-le à votre projet
2) Faites un clic droit sur le fichier (en xcode) et ouvrez en tant que> code source
3) La 2e ligne devrait ressembler à:
<document type="com.Apple.InterfaceBuilder3.CocoaTouch.XIB" version="3.0" toolsVersion="4510"
le changer en
<document type="com.Apple.InterfaceBuilder3.CocoaTouch.iPad.XIB" version="3.0" toolsVersion="4510"
4) La 8ème ligne devrait ressembler à ceci:
<rect key="frame" x="0.0" y="0.0" width="320" height="480"/>
le changer en
<rect key="frame" x="0.0" y="64" width="768" height="960"/>
C'est tout et là vous avez l'iPad XIB. Mais le vrai mérite revient toujours à Jag.
En plus de la réponse donnée par Jag, recherchez également "320,460" et remplacez-le par 768,1024 et votre XIB sera redimensionné aux dimensions de l'iPad.
Pour Xcode 4,
Vous n'avez pas besoin de créer une cible distincte pour chaque appareil. Au lieu de cela, vous pouvez remplacer les périphériques dans le résumé du projet par Universal, ce qui serait déjà dans l'iPhone. Ceci est répondu dans le lien Mise à jour de l'application iOS 5 vers Universal sur Xcode 4.2. Ainsi, il fera la transition pour vous.
Jag has given Great Answer.
Dans certains cas.
Pas besoin de convertir votre Iphone XIB en Ipad XIB. Vous pouvez utiliser le masque de redimensionnement automatique et exécuter également Ipad. suffit de configurer votre application pour qu'elle s'exécute en mode universel avec un masque de redimensionnement automatique approprié.
Il suffit de remplacer
<document type="com.Apple.InterfaceBuilder3.CocoaTouch.XIB" version="3.0" toolsVersion="14854.2" targetRuntime="iOS.CocoaTouch"
avec
<document type="com.Apple.InterfaceBuilder3.CocoaTouch.iPad.XIB" version="3.0" toolsVersion="14854.2" targetRuntime="iOS.CocoaTouch.iPad"
On dirait que la meilleure solution est de toujours développer en tant qu'iphone d'abord, puis une fois que vous avez terminé, ajoutez la cible ipad, en laissant xcode faire la mise à jour. J'ai fait la même erreur, sélectionné universel pour commencer, ce qui crée les premiers fichiers, mais ensuite tous les autres xib ont dû être recréés à la main dans le dossier ipad. Grosse douleur