Wie die Entwicklung oder die Migration von apps für iPhone 5 Bildschirm-Auflösung?
Das neue display des iPhone 5 hat eine neue Seitenverhältnis und eine neue Auflösung (640 x 1136 Pixel).
Was erforderlich ist, um die Entwicklung neuer oder die Umstellung bereits bestehender Anwendungen an die neue Bildschirmgröße?
Was sollten wir im Hinterkopf behalten, um Anwendungen "universal" für beide, den älteren zeigt und die neuen widescreen-Seitenverhältnis?
InformationsquelleAutor Lukasz | 2012-09-12
Du musst angemeldet sein, um einen Kommentar abzugeben.
[[UIScreen mainScreen] bounds]
wie es scheint keine spezifische API. Ab iOS 8 gibt es auch Klassen, die abstrakte Bildschirm-Größen in regelmäßigen oder kompakt vertikal und horizontal und sind die empfohlene Methode zum anpassen der Benutzeroberfläche.Es ist erwähnenswert, dass [UIImage imageNamed:@"hintergrund.png"] wird nur noch laden, entweder "hintergrund.png" oder "[email protected]" es wird nicht geladen "[email protected]" wenn es vorhanden ist.
Ist Zugabe "[email protected]" genug oder gibt es irgendwelche zusätzlichen Optionen, die in den build-Einstellungen können wir/einstellen sollte?
es ist genug, (und nur so) zu unterstützen 1136 px Höhe. Ob Ihre app wird die Strecke richtig hängt davon ab, wie Sie Ihre setup-Ansichten, aber auch wenn Sie hart codiert alles, sollte es nicht eine Menge Arbeit, um das setup autoresizing Masken oder autolayout.
Die Auflösung, die Sie angegeben ich.e 1136*960, tritt es 1136 * 640..??..
InformationsquelleAutor Filip Radelic
Wenn Sie eine app für iPhone 4S oder älter, werde es ausführen letterbox auf dem iPhone 5.
Zur Anpassung Ihrer app an die neue längeres Display, das erste, was Sie tun, ist zu ändern Sie die Start Bild: [email protected]. Die Größe sollte 1136 x 640 (HxW). Ja, die Standard-Bild in die neue Bildschirm-Größe ist der Schlüssel, lassen Sie Ihre app dauert das ganze neue iPhone 5 s-Bildschirm.
(Beachten Sie, dass die Namenskonvention funktioniert nur für die Standard-Bild. Benennen von einem anderen Bild "[email protected]" wird nicht dazu führen, dass es geladen wird an Stelle von "[email protected]". Wenn Sie brauchen, um zu laden verschiedener Bilder für unterschiedliche Bildschirmgrößen, du musst es tun, programmgesteuert.)
Wenn man sehr sehr sehr viel Glück, das wäre es... aber in aller Wahrscheinlichkeit, müssen Sie ein paar weitere Schritte.
für eine bestimmte Display-Größe und die Position programmatisch für die
andere.
Im Extremfall (wenn keiner der oben genügt), design der zwei Xibs und laden Sie die entsprechende eins in der view-controller.
Erkennen Bildschirmgröße:
size
ist in Punkte, so ist es 480/568, nicht 960/1136.Hallo sanjay, als wir haben, um herauszufinden, ob Ihr iphone 5 oder früher, so wird zum ändern der Größe, das alles entsprechend, wie ich sagen, ich habe einen tableview mit der Höhe 367 mit Navigationsleiste und und tabbar, werde ich haben, um die Größe für das iphone 5
Was ist mit iPod touch ? Was ist mit der nächsten iPhone-generation ? Man sollte sich auf Bildschirmgröße 3,5-Zoll - /4 Zoll nicht iPhone/iPhone5
Eine andere gotcha, um Ausschau nach ist, dass viewDidLoad wird aufgerufen, bevor Ihr xib-Größe geändert wird, so dass, wenn Sie tun, die keine Berechnungen, basierend auf Dinge, die in der Spitze werden sich bewusst, wie position verlagern können (oder wollen, sagte, dass die Berechnungen in viewWillAppear).
InformationsquelleAutor Sanjay Chaudhry
Nur wirklich erforderlich ist, was zu tun ist, fügen Sie ein Start-Bild mit dem Namen "[email protected]" der app-Ressourcen, und im Allgemeinen Fall (wenn Sie Glück haben) die app funktioniert.
Im Falle der app nicht verarbeitet, touch-events, dann stellen Sie sicher, dass der Schlüssel Fenster hat die richtige Größe. Die Problemumgehung ist, um das richtige Gestell:
Gibt es andere Probleme die nicht mit der Bildschirmgröße, die bei der Migration zu iOS 6. Lesen iOS 6.0 Release Notes für details.
InformationsquelleAutor onegray
Manchmal (für pre-storyboard-apps), wenn das layout wird so unterschiedlich, lohnt es sich, die Angabe einer anderen xib-nach-Gerät (siehe diese Frage - Sie müssen den code ändern, um Angebot mit iPhone 5) in der viewController init, da kein Betrag von Anpassungen mit autoresizing Masken arbeiten, wenn Sie benötigen, um verschiedene Grafiken.
Dies ist nützlich für Anwendungen, die gezielt auf ältere iOS-Versionen.
Stimmt - das könnte Teil der Energieversorgungsunternehmen, die Retouren-Gerät geben - es war nur ein Beispiel um zu zeigen, wie der Einsatz von verschiedenen Federn, nicht wirklich darum, das Gerät.
InformationsquelleAutor SomaMan
Hier finden Sie ein schönes tutorial (für MonoTouch, aber Sie können die Informationen verwenden, die für Nicht-MonoTouch-Projekten):
http://redth.info/get-your-monotouch-apps-ready-for-iphone-5-ios-6-today/
Erstellen Sie ein neues Bild für die splash - /Standard-Bildschirm (640 x 1136 pixel) mit dem Namen "[email protected]"
In der iOS-Simulator, gehen Sie auf die Hardware -> Geräte-Menü und wählen Sie "iPhone (Retina 4-inch)"
Fotos erstellen, wie z.B. hintergrund-Bilder
InformationsquelleAutor Manni
Es ist einfach für Migration iPhone5 und iPhone4 durch XIBs.........
InformationsquelleAutor shankar
Ich dieses problem lösen hier. Fügen Sie einfach ~568h@2x suffix Bilder und ~568h zu xib. Keine Bedürfnisse mehr Laufzeit überprüft oder code-änderungen.
Fügen Sie einfach diesen Klassen im Projekt. Sie brauchen nicht zu schreiben von zusätzlichem code. Zum Beispiel, Sie haben eine xib-Datei mit dem hintergrund-Bilder mit einer Auflösung von 320x480, 640x960, 640x1136 iPhone 3, iPhone 4, iPhone 5). Nur richtig eingestellt autoresizing Maske und name der images Bild.png, [email protected], [email protected].
Ich merke aber, dass einige Komponenten laufen auf anderen Positionen !, haben Sie irgendeine Idee??????
Überprüfen Sie Ihre autoresizing Masken. Ich sehe keinen anderen Grund.
InformationsquelleAutor Shimanski Artem
Habe ich die neue Standard-Start-image und (in Check-out mehrere andere SE Antworten...) gemacht, dass meine storyboards alle auto-sized sich selbst und Untersichten aber die retina 4 Zoll immer noch im letterbox-Format angezeigt.
Dann bemerkte ich, dass meine info plist hatte einen Eintrag für "Start Bild" "Standard.png", die ich so entfernt und magisch letterboxing nicht mehr erschienen. Hoffentlich rettet jemand anderes die gleiche Verrücktheit, die ich ertragen.
InformationsquelleAutor SkeletonJelly
Ich denke, es ist nicht in allen Fällen funktionieren, aber in meinem speziellen Projekt es vermieden, mich von der Vervielfältigung von NIB-Dateien:
Irgendwo in
common.h
Sie können diese definiert auf der Grundlage von Bildschirm-Höhe:In Ihrem Basis-controller:
InformationsquelleAutor iutinvg
In einem
constants.h
Datei, die Sie hinzufügen können diese Anweisungen definieren:InformationsquelleAutor Khwarezm Shah
Um festzustellen, ob Ihre app unterstützt iPhone 5 Retina verwenden:
(Dies könnte robuster zurückzukehren, die Art der Anzeige, 4S Retina, etc., aber wie unten geschrieben, es gibt einfach zurück, wenn das iPhone unterstützt iOS 5 Retina JA oder NEIN)
In einem gemeinsamen ".h" - Datei hinzufügen:
In einem gemeinsamen ".m" - Datei hinzufügen:
InformationsquelleAutor Mike
Erstellen Sie zunächst zwei xibs und fügen Sie alle Delegierten,die main-Klasse um die
xib
und dann u kann in diesem Zustand bereits erwähnt unten in Ihreappdelegate.m
Datei inkönnen Sie es verwenden, wo jeder in das Programm je nach Ihren Anforderungen, auch in Ihrem
ViewController
Klassen. Welche Angelegenheiten am meisten ist, dass Sie erstellt haben, zweixib
Dateien getrennt füriphone 4(320*480) and iphone 5(320*568)
InformationsquelleAutor mandeep
Versuchen Sie die folgenden Verfahren in eine singleton-Klasse:
InformationsquelleAutor Mohammed Ebrahim
Können Sie die
Auto Layout
Funktion und erstellen das design mit dem iPhone 5 Bildschirm-Auflösung-und es wird die Arbeit für die beiden 4" - und 3,5" - Geräte, aber in diesem Fall sollten Sie eine ausreichende Kenntnisse der layout-manager.InformationsquelleAutor DeveshM
Überprüfung
bounds
mit568
fehl im landscape-Modus. iPhone 5 startet nur im portrait-Modus, aber wenn Sie möchten, unterstützt die Rotationen dann das iPhone 5 "überprüfen" müssen um dieses Szenario zu behandeln als gut.Hier ist ein makro, das die Griffe Ausrichtung Zustand:
Die Nutzung der "preferredMode' Aufruf aus einem anderen posting Las ich vor ein paar Stunden so komm ich nicht auf diese Idee.
InformationsquelleAutor Christopher
Erste zeigen dieses Bild. In diesem Bild Sie " Warnung anzeigen für Retina-4 unterstützen, so klicken Sie auf diese Warnung, und klicken Sie auf hinzufügen, damit Ihre Netzhaut 4 splash-screen automatisch hinzufügen in Ihr Projekt.
nachdem du diesen code verwenden :
InformationsquelleAutor Darshan Kunjadiya
Ich nie solch ein Problem mit einem Gerät wie ich habe eine Codebasis für alle, ohne einprogrammierte Werte. Was ich mache ist die maximale Größe Bild als Ressource statt für jedes Gerät. Zum Beispiel hätte ich eine für retina-display und zeigen Sie es als Aspekt passen, so wird es Ansichten, wie auf jedem Gerät.
Kommen zu der Entscheidung, den Rahmen der Schaltfläche, zum Beispiel zur Laufzeit. Für diese verwende ich den % - Wert des Patents Ansicht, Beispiel , wenn ich die Breite um die Hälfte der Eltern nehmen 50 % der Eltern und das gleiche gilt für Höhe und in der Mitte.
Damit meine ich nicht sogar brauchen, die xibs.
InformationsquelleAutor infiniteLoop
Können Sie diese definieren, um zu berechnen, ob Sie mit dem iPhone 5 basieren auf dem Bildschirm Größe:
dann mit einem einfachen
if
Aussage :InformationsquelleAutor Mutawe
Peter, Sie sollten wirklich einen Blick auf Canappi, es tut alles für Sie, alles, was Sie tun müssen ist, geben Sie das layout wie folgt:
Von dort Canappi erzeugen die richtige objective-c-code erkennt das Gerät die app läuft auf und verwenden:
Canappi funktioniert wie Interface Builder und Story-Board kombiniert, außer dass es in einer textuellen form. Wenn Sie bereits über XIB-Dateien können Sie konvertieren, so dass Sie nicht haben, um neu die gesamte Benutzeroberfläche von Grund auf neu.
InformationsquelleAutor metaprogrammer
Können Sie manuell überprüfen Sie die Bildschirm-Größe zu bestimmen, auf welchem Gerät Sie auf:
InformationsquelleAutor Robot1987
Fügen Sie diesen code ein:
scale
- Wahlschalter aufUIScreen
und Sie haben einen Fall, wo Ihr "standard-Auflösung" code nicht exec.InformationsquelleAutor dbramhall
Dies ist eine echte universal-code können Sie erstellen, die 3 verschiedene story-board:
Legen Sie Ihr Projekt Universal-Modus, und stellen Sie Ihre Haupt-story iPhone mit dem iPhone5 storyboard und die ipad-main mit dem iPad Ziel storyboard, nun fügen Sie ein neues storyboard-Ziel für das iphone und ändern Sie die Auflösung für das iphone 4s oder weniger implementieren Sie nun Ihre AppDelegate.m
iPhone4/4s (ist das gleiche für 3/3Gs) eine für iPhone5 und machen das Projekt universal, mit einem Storyboard, das Ziel für das iPad, jetzt in der AppDelegate.m unter der
didFinishLaunching
fügen Sie diesen code:, So dass Sie erstellt haben, eine Universal-app für iPhone 3/3Gs/4/4s/5 Generation iPod, und iPad
Erinnern zu integrieren alle IMG mit
myImage.png
und[email protected]
InformationsquelleAutor BlackSheep
Meiner Meinung nach der beste Umgang mit solchen Problemen und die Vermeidung paar Voraussetzung für die überprüfung der Höhe des Gerätes, ist mit der relativen Rahmen für Ansichten oder jede UI-element, das Sie hinzufügen, um Sie anzeigen zum Beispiel: wenn Sie hinzufügen, einige UI-Elemente, die Sie wollen, sollten Sie in den unteren Bereich der Ansicht oder einfach nur über die tab-Leiste, dann sollten Sie die y-Herkunft in Bezug auf Ihre Ansicht ist die Höhe, oder in Bezug auf die tab-Leiste (falls vorhanden) und wir haben die automatische Größenanpassung Eigenschaft als gut. Ich hoffe, dies wird für Sie arbeiten
InformationsquelleAutor Pranav Bhardwaj
Eher als die Verwendung einer Reihe von Bedingungen, die Sie können die Größe Ihrer anzeigen automatisch mit der Bildschirmgröße.
In meinem Fall möchte ich eine Ansicht, füllt den Raum zwischen einige input-Felder an der Spitze und einigen buttons an der Unterseite, so fest oben Links und die variable rechts unten, basierend auf der Bildschirmgröße. Meine app füllt die Ansicht mit dem Foto von der Kamera, so dass ich möchte, dass alle den Raum, den ich bekommen kann.
InformationsquelleAutor Charles Jaimet
Wenn Sie brauchen, um zu konvertieren eine bereits vorhandene app zu universal, Sie müssen wählen Sie die entsprechende xib-Datei->show-Dienstprogramme-> Show-Größe-Inspektor.
Im Size inspector können Sie sehen, die automatische Skalierung der Seiten, die mit diesem tool können Sie konvertieren, um bestehende iOS-App.
InformationsquelleAutor Prad
Verwendung von xCode 5, wählen Sie "Migrieren von Katalogen" auf Projekt - >allgemein.
Verwenden Sie dann "Show in finder", um Ihre Start-Bild können Sie dummy-edit-es werden 640x1136, dann ziehen Sie es in der asset-Katalog wie im Bild unten gezeigt.
Stellen Sie sicher, dass beide iOS7 und iOS6 R4 Abschnitt hat ein Bild, das 640x1136. Nächste mal, wenn Sie starten Sie die app, die schwarzen Balken verschwinden, und Ihre app verwenden Sie 4-Zoll-Bildschirm
InformationsquelleAutor Alex Stone
Punkt Wert feststellen - in der neuen Xcode müssen Sie diese image-Datei [email protected] Vermögenswerte
InformationsquelleAutor Michal Gumny
Verwenden Sie die
Auto Layout
Funktion für Ansichten. Es wird automatisch angepasst, um alle Auflösungen.Erstellen Sie zwei xibs für einen controller mit controller-Namen mit suffix entweder ~oder iphone ~ipad. Zur compile-Zeit, Xcode wird die richtige xib-basierend auf dem Gerät.
Größe der Klassen, wenn Sie möchten, erstellen Sie eine einzelne xib-sowohl für iPhone und iPad, wenn Sie die Ansicht ist einfach genug, um Anschluss zu iPhone und iPad.
InformationsquelleAutor Praveen Matanam
Es ist ein leichtes problem bei der Prüfung auf beiden iOS-Gerät und iOS-Simulator. Es scheint, dass der simulator (XCode 6.0.1) gibt umgeschaltet Werte für Breite und Höhe in
[[UIScreen mainScreen] bounds].size
je nach Geräteausrichtung.So könnte dies zu einem problem werden, wenn die Festlegung des richtigen körperlichen Bildschirmgröße. Dieser code hilft auch, um verschiedene alle 2014. iPhone-Modell Generationen:
Es kann auch leicht geändert werden, um die Unterscheidung zwischen z.B. von iPhone6 iPhone6+.
InformationsquelleAutor vedrano
Ich würde vorschlagen, zu verwenden Autoresizing Maske in Ihre Anwendungen entsprechend Ihrer UI-Schnittstelle, es spart eine Menge ärger und ist besser als die Herstellung verschiedener UI für iPhone 4 und 5 Bildschirme.
InformationsquelleAutor Geet