La conversione di iPhone xib per iPad xib?
Domanda
Come si fa a farlo?Ho visto un video tutorial su di esso, ma lo schermo era troppo piccolo.Inoltre, altri di modificare le dimensioni di visualizzazione, ci sono altre importanti modifiche devo fare per il mio iphone app per la conversione per iPad?
Soluzione
Si supponga che hai l'SDK con Xcode 3 ,
- Apri IB.
- Aprire il XIB.
- File -.> Crea versione iPad utilizzando maschere ridimensionamento automatico
Altri suggerimenti
Sono stato in grado di restringere il campo a un paio di cose, così qui sono i passi che ha funzionato per me:
1) Fare una copia di iPhone xib file e aggiungerlo al progetto
2) fare clic Destro sul file (in xcode) e Aprire > il Codice Sorgente
3) La linea 2 dovrebbe assomigliare a questo:
<archive type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="7.10">
Sostituire con:
<archive type="com.apple.InterfaceBuilder3.CocoaTouch.iPad.XIB" version="7.10">
4) Ricerca per "IBCocoaTouchFramework" e Sostituire tutte le occorrenze con "IBIPadFramework"
5) Salvare il file e Aprire Come > Interface Builder - iOS
Il file potrebbe essere ancora l'aspetto di un normale iPhone xib, ma per me, una volta ho cambiato la Barra di Stato per il "Nero", in la ispeziono il resto del xib solo una sorta di "bloccato" in un iPad xib
In Xcode 5 si dovrebbe solo:
Ricerca:
<document type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="3.0" toolsVersion="4510" systemVersion="12F37" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none">
Sostituire con:
<document type="com.apple.InterfaceBuilder3.CocoaTouch.iPad.XIB" version="3.0" toolsVersion="4510" systemVersion="12F37" targetRuntime="iOS.CocoaTouch.iPad" propertyAccessControl="none">
Si noti che stiamo semplicemente aggiungendo .ipad per le proprietà type
e targetRuntime
.
Dopo l'apertura è sufficiente selezionare un nuovo formato per regolare. Esempio:. IPad schermo intero
XCode4:
In Xcode 4 non possiamo farlo per un singolo XI ter, ma possiamo creare rispettive versioni iPad tutto in una volta.
Prima di configurare il progetto per ipad, quando è configurato solo per iPhone, fate clic destro sul bersaglio e cliccare sul duplicato.
Ora selezionare "duplicare e di transizione verso iPad" .Un nuovo obiettivo e nuova serie di xibs sono created.It dovrebbe ridurre un po 'di lavoro.
Speranza che aiuta.
Xcode 4 :
Crea versione iPad utilizzando maschere ridimensionamento automatico caratteristica è stato rimosso da Xcode 4. In questo momento il modo più semplice è quello di utilizzare Xcode 3 per la conversione, in quanto il formato di file nasello (.xib) non è cambiato.
Xcode 3 e 4 possono ora essere entrambi installati sullo stesso sistema semplicemente selezionando una cartella diversa (vedi istruzioni di montaggio l'immagine del disco su).
In caso contrario, sarà necessario copiare / incollare gli elementi dell'interfaccia utente della versione per iPhone, e li ri-creare un collegamento al codice.
Che dire lasciare che il computer fare il lavoro di computer?
Più veloce, meno rischi di errore.
Ecco un flusso di lavoro basato sul eccellente risposta da Jag , ma automatizzata con sed.
In primo luogo, di messa a punto lasciare alcune cose. Ci sarà solo bisogno di fare questo una volta.
Nella directory che contiene i XIBs, creare due file con il seguente contenuto:
iPhoneToiPadXIBConversion.sed
file:
s/com.apple.InterfaceBuilder3.CocoaTouch.XIB/com.apple.InterfaceBuilder3.CocoaTouch.iPad.XIB/g
s/IBCocoaTouchFramework/IBIPadFramework/g
e il file iPadToiPhoneXIBConversion.sed
:
s/com.apple.InterfaceBuilder3.CocoaTouch.iPad.XIB/com.apple.InterfaceBuilder3.CocoaTouch.XIB/g
s/IBIPadFramework/IBCocoaTouchFramework/g
Setup è ormai finito.
Per convertire un XIB, inserire uno dei due seguenti comandi nel terminale:
iPhone alla conversione iPad:
sed -f iPhoneToiPadXIBConversion.sed MyViewController~iphone.xib > MyViewController.xib
iPad alla conversione iPhone:
sed -f iPadToiPhoneXIBConversion.sed MyViewController.xib > MyViewController~iphone.xib
Solo per il divertimento, creiamo due funzioni in zsh, per rendere la conversione ancora più semplice:
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."
}
Dopo aver aggiunto questo alla vostra configurazione zsh, la conversione di un XIB è un semplice esempio:
convertiPadXIBToiPhone MyViewController.xib
o
convertiPhoneXIBToiPad MyViewController.xib
Aprire il XIB in XCode 4 utilizzando "vista come codice sorgente."
Prima
Backup il pennino in questione.
Un
sostituire questo goo
<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>
per quest'altra 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>
Due
Quindi, per ogni visualizzazione nel pennino utilizzando la IB integrato, eliminarlo e poi ha colpito annullare.
Tre
Poi doccia in acqua calda per pulire quella sensazione disgustosa si potrebbe avere.
È possibile aprire il XIB come file testo e modificare la dimensione UIView:
Fare clic destro sul file XIB nel de navigatore e selezionare: "aperto ..." Apri come file di origine.
Trova il riferimento UIView e modificare i valori Telaio:
<object class="IBUIView" id="191373211">
<string key="NSFrame">{{0, 20}, {768, 1024}}</string>
In XCode 4.3.2, il modo più facile per me creare versione iPad del XI TER è duplicare il file XI ter e aggiungere il suffisso ~ipad
al nome del file. E aggiungere sia "myVC.xib" e "myVC ~ ipad.xib" nel progetto. Si noti che è "~ ipad" NOT "~ iPad". La vostra applicazione utilizzerà automaticamente che ~ versione iPad quando viene eseguito su iPad. Questo funziona anche con i file di risorse (ad esempio immagini).
Il miglior riferimento che ho trovato in questo momento ... https://developer.apple.com/ biblioteca / ios / # documentazione / cacao / concettuale / LoadingResources / ImageSoundResources / ImageSoundResources.html
Xcode 5 update
targetRuntime = "iOS.CocoaTouch"
a
targetRuntime = "iOS.CocoaTouch.iPad"
Io documentare quello che ho fatto in 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
-
Creare un elenco di file che si desidera convertire in
fixfile
, ogni linea sarà un nome di file senza estensione. Se il nome del file originale èAAA_Iphone.h
, appena messoAAA
. Se il file originale non è di questo modello, è necessario rivedere lo script. -
Esegui in riga di comando
cat fixfile | while read line ; do sed -e "s/REPLACEME/${line}/g" fixpattern.sh ; done > fixall.sh
-
Commenta e
fixall.sh
run -
Aggiungi file appena creato nel progetto
La risposta di Jag è grande. Ma c'è un problema se un XIB si apre / creato in Xcode 5.
Per Xcode 5
1) Effettuare una copia del file iPhone XI ter e aggiungerlo al progetto
2) Fare clic destro sul file (in Xcode) e Open come> Codice Sorgente
3) La seconda linea dovrebbe essere simile:
<document type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="3.0" toolsVersion="4510"
cambiarlo in
<document type="com.apple.InterfaceBuilder3.CocoaTouch.iPad.XIB" version="3.0" toolsVersion="4510"
4) all'8 linea dovrebbe essere simile a questo:
<rect key="frame" x="0.0" y="0.0" width="320" height="480"/>
cambiarlo in
<rect key="frame" x="0.0" y="64" width="768" height="960"/>
Questo è tutto e ci avete iPad XIB. Ma ancora il vero merito va a Jag.
Oltre alla risposta data dal Jag cerca anche per "320.460" e sostituirlo con 768,1024 e la vostra XIB sarà ridimensionata a dimensioni iPad.
Per Xcode 4,
Non hai bisogno di creare un obiettivo per ogni dispositivo.Invece, è possibile modificare i Dispositivi di sintesi del progetto Universale che dovrebbe essere in iPhone già.Questo è risposto nel link l'Aggiornamento di iOS 5 App Universale su Xcode 4.2.Così, si farà di transizione per voi.
suona come la soluzione migliore è quella di sviluppare sempre di iPhone prima, poi una volta si è fatto completo, aggiungere il target ipad, lasciando che Xcode fare l'aggiornamento. Ho fatto lo stesso errore, selezionato universale per iniziare, che crea le prime file, ma poi ogni altra XI ter doveva essere ricreato mano nella cartella ipad. Dolore grande
Jag has given Great Answer.
In alcuni casi.
Non c'è bisogno di convertire il vostro Iphone Ipad XIB nel XIB. È possibile utilizzare Autoresizingmask e far funzionare Ipad anche. solo bisogno di configurare l'APP per la corsa in modalità universale con una corretta autoresizingmask.
Basta sostituire
<document type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="3.0" toolsVersion="14854.2" targetRuntime="iOS.CocoaTouch"
con
<document type="com.apple.InterfaceBuilder3.CocoaTouch.iPad.XIB" version="3.0" toolsVersion="14854.2" targetRuntime="iOS.CocoaTouch.iPad"