Wie machst du das? Ich habe ein Video-Tutorial gesehen, aber der Bildschirm war zu klein. Gibt es neben der Änderung der Ansichtsgröße noch weitere wichtige Änderungen, die ich an meinen iPhone-Apps vornehmen müsste, um sie auf das iPad zu konvertieren?
75
Ich konnte es auf ein paar Dinge eingrenzen. Hier sind die Schritte, die für mich funktioniert haben:
1) Erstellen Sie eine Kopie der iPhone xib-Datei und fügen Sie sie Ihrem Projekt hinzu
2) Klicken Sie mit der rechten Maustaste auf die Datei (in xcode) und öffnen Sie als> Quellcode
3) Die 2. Zeile sollte folgendermaßen aussehen:
<archive type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="7.10">
Ersetzen mit:
<archive type="com.apple.InterfaceBuilder3.CocoaTouch.iPad.XIB" version="7.10">
4) Suchen Sie nach "IBCocoaTouchFramework" und ersetzen Sie alle Vorkommen durch "IBIPadFramework".
5) Speichern Sie die Datei und öffnen Sie sie als> Interface Builder - iOS
Die Datei sieht zwar immer noch wie ein normales iPhone xib aus, aber für mich ist der Rest der xib, nachdem ich die Statusleiste im Attributinspektor auf "Schwarz" geändert habe, nur sozusagen in ein iPad xib "eingerastet"
quelle
In Xcode 5 sollten Sie nur:
Finden:
<document type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="3.0" toolsVersion="4510" systemVersion="12F37" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none">
Ersetzt durch:
<document type="com.apple.InterfaceBuilder3.CocoaTouch.iPad.XIB" version="3.0" toolsVersion="4510" systemVersion="12F37" targetRuntime="iOS.CocoaTouch.iPad" propertyAccessControl="none">
Beachten Sie, dass wir den Eigenschaften und nur .iPad hinzufügen .
type
targetRuntime
Wählen Sie nach dem Öffnen einfach eine neue Größe zum Anpassen aus. Beispiel: iPad Vollbild.
quelle
<...type="com.apple.InterfaceBuilder3.CocoaTouch.XIB"...>
.XCode4:
In xcode 4 können wir das nicht für eine einzelne xib tun, aber wir können die entsprechenden iPad-Versionen auf einmal erstellen.
Bevor Sie Ihr Projekt für das iPad konfigurieren, klicken Sie mit der rechten Maustaste auf das Ziel und dann auf Duplizieren, wenn es nur für das iPhone konfiguriert ist.
Wählen Sie nun "Duplizieren und Übergang zum iPad". Ein neues Ziel und ein neuer Satz von XIBs werden erstellt. Dies sollte einige Arbeit reduzieren.
Ich hoffe es hilft.
quelle
Xcode 4 :
Die Funktion " iPad-Version mit Autosizing-Masken erstellen" wurde aus Xcode 4 entfernt. Derzeit ist es am einfachsten, Xcode 3 für die Konvertierung zu verwenden, da sich das Dateiformat "nib" (.xib) nicht geändert hat.
Xcode 3 und 4 können jetzt beide auf demselben System installiert werden, indem einfach ein anderer Ordner ausgewählt wird (siehe Installationsanweisungen auf dem Disk-Image).
Andernfalls müssen Sie die UI-Elemente aus der iPhone-Version kopieren / einfügen und sie erneut mit Ihrem Code verknüpfen.
quelle
Was ist, wenn Sie den Computer die Arbeit des Computers erledigen lassen?
Schnelleres, geringeres Fehlerrisiko.
Hier ist ein Workflow, der auf der hervorragenden Antwort von Jag basiert , aber mit sed automatisiert ist.
Lassen Sie uns zuerst einige Dinge einrichten. Wir müssen dies nur einmal tun.
Erstellen Sie in dem Verzeichnis, das Ihre XIBs enthält, zwei Dateien mit folgendem Inhalt:
Datei
iPhoneToiPadXIBConversion.sed
:s/com.apple.InterfaceBuilder3.CocoaTouch.XIB/com.apple.InterfaceBuilder3.CocoaTouch.iPad.XIB/g s/IBCocoaTouchFramework/IBIPadFramework/g
und Datei
iPadToiPhoneXIBConversion.sed
:s/com.apple.InterfaceBuilder3.CocoaTouch.iPad.XIB/com.apple.InterfaceBuilder3.CocoaTouch.XIB/g s/IBIPadFramework/IBCocoaTouchFramework/g
Das Setup ist nun abgeschlossen. Geben Sie zum Konvertieren eines XIB einen der beiden folgenden Befehle in das Terminal ein:
Konvertierung von iPhone zu iPad:
sed -f iPhoneToiPadXIBConversion.sed MyViewController~iphone.xib > MyViewController.xib
Konvertierung von iPad zu iPhone:
sed -f iPadToiPhoneXIBConversion.sed MyViewController.xib > MyViewController~iphone.xib
Lassen Sie uns zum Spaß zwei Funktionen in zsh erstellen, um die Konvertierung noch einfacher zu gestalten:
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." }
Nachdem Sie dies zu Ihrer zsh-Konfiguration hinzugefügt haben, ist das Konvertieren eines XIB wie folgt:
convertiPadXIBToiPhone MyViewController.xib
oder
convertiPhoneXIBToiPad MyViewController.xib
quelle
Öffnen Sie die XIB in XCode 4 mit "Ansicht als Quellcode".
Vor
Sichern Sie die betreffende Feder.
Einer
Ersetzen Sie diese Gänsehaut
<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>
für diese andere 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>
Zwei
Löschen Sie dann für jede Ansicht in der Feder mit dem integrierten IB diese und klicken Sie dann auf Rückgängig.
Drei
Duschen Sie dann in heißem Wasser, um das widerliche Gefühl, das Sie haben könnten, abzuwischen.
quelle
Sie können die XIB als Textdatei öffnen und die UIView-Größe ändern:
Klicken Sie im Navigator mit der rechten Maustaste auf Ihre XIB-Datei und wählen Sie: "Öffnen als ..." Als Quelldatei öffnen.
Suchen Sie die UIView-Referenz und ändern Sie die Frame-Werte:
<object class="IBUIView" id="191373211"> <string key="NSFrame">{{0, 20}, {768, 1024}}</string>
quelle
In XCode 4.3.2 ist es für mich am einfachsten, eine iPad-Version von xib zu erstellen, diese xib-Datei zu duplizieren und
~ipad
dem Dateinamen ein Suffix hinzuzufügen . Fügen Sie Ihrem Projekt sowohl "myVC.xib" als auch "myVC ~ ipad.xib" hinzu. Beachten Sie, dass es "~ ipad" NICHT "~ iPad" ist. Ihre App verwendet diese ~ ipad-Version automatisch, wenn sie auf dem iPad ausgeführt wird. Dies funktioniert auch mit Ressourcendateien (z. B. Bildern).Die beste Referenz, die ich im Moment finden konnte ... https://developer.apple.com/library/ios/#documentation/Cocoa/Conceptual/LoadingResources/ImageSoundResources/ImageSoundResources.html
quelle
Xcode 5 Update
zu
quelle
Ich werde dokumentieren, was ich in Xcode 4.5 getan habe:
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
Erstellen Sie eine Liste der Dateien, in die Sie konvertieren möchten
fixfile
. Jede Zeile ist ein Dateiname ohne Erweiterung. Wenn Sie den ursprünglichen Dateinamen habenAAA_Iphone.h
, geben Sie ihn einfach einAAA
. Wenn Ihre Originaldatei nicht diesem Muster entspricht, müssen Sie das Skript überarbeiten.In der Befehlszeile ausführen
cat fixfile | while read line ; do sed -e "s/REPLACEME/${line}/g" fixpattern.sh ; done > fixall.sh
Überprüfen und ausführen
fixall.sh
Neu erstellte Datei zum Projekt hinzufügen
quelle
Jags Antwort ist großartig. Es gibt jedoch einen Haken, wenn ein XIB in Xcode 5 geöffnet / erstellt wird.
Für Xcode 5
1) Erstellen Sie eine Kopie der iPhone xib-Datei und fügen Sie sie Ihrem Projekt hinzu
2) Klicken Sie mit der rechten Maustaste auf die Datei (in xcode) und öffnen Sie als> Quellcode
3) Die 2. Zeile sollte folgendermaßen aussehen:
<document type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="3.0" toolsVersion="4510"
ändere es auf
<document type="com.apple.InterfaceBuilder3.CocoaTouch.iPad.XIB" version="3.0" toolsVersion="4510"
4) Die 8. Zeile sollte folgendermaßen aussehen:
<rect key="frame" x="0.0" y="0.0" width="320" height="480"/>
ändere es auf
<rect key="frame" x="0.0" y="64" width="768" height="960"/>
Das war's und da hast du iPad XIB. Trotzdem geht der wahre Kredit an Jag.
quelle
Neben der Antwort von Jag suchen Sie auch nach "320.460" und ersetzen Sie es durch 768.1024. Ihr XIB wird auf die iPad-Abmessungen angepasst.
quelle
Für Xcode 4
Sie müssen nicht für jedes Gerät ein eigenes Ziel erstellen. Stattdessen können Sie die Geräte in der Projektzusammenfassung in Universal ändern, das sich bereits im iPhone befindet. Dies wird unter dem Link Aktualisieren der iOS 5-App auf Universal unter Xcode 4.2 beantwortet. Somit wird es den Übergang für Sie tun.
quelle
Klingt so, als ob die beste Lösung darin besteht, immer zuerst als iPhone zu entwickeln. Wenn Sie fertig sind, fügen Sie das iPad-Ziel hinzu und lassen Sie xcode das Update durchführen. Ich habe den gleichen Fehler gemacht, Universal zum Starten ausgewählt, der die ersten paar Dateien erstellt, aber dann musste jede andere xib von Hand im iPad-Ordner neu erstellt werden. Große Schmerzen
quelle
Jag has given Great Answer.
In manchen Fällen.
quelle
Einfach ersetzen
<document type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="3.0" toolsVersion="14854.2" targetRuntime="iOS.CocoaTouch"
mit
<document type="com.apple.InterfaceBuilder3.CocoaTouch.iPad.XIB" version="3.0" toolsVersion="14854.2" targetRuntime="iOS.CocoaTouch.iPad"
quelle