2014-09-21 7 views
6

Also, wenn ich mein Projekt auf dem Simulator für iPhone 6 mit einem Bereitstellungsziel von 7.1 laufen lasse, erwarte ich, dass alles automatisch auf die größere Bildschirmgröße skaliert wird.Welche Einstellung bestimmt, ob eine App für iPhone 6 und 6plus skaliert wird?

Aber das ist nicht passiert. Mein UILabel, das zuvor horizontal in der Mitte eines 320 Pixel breiten Storyboard-Bildschirms mit einer führenden Platzbeschränkung für die Elternansicht lag, wird nun im Simulator mit genau dieser Platzbeschränkung angezeigt, anstatt es zu skalieren. Es zeigt sich also aus der Mitte, weil das iPhone6 ​​breiter ist.

Welche Einstellung bestimmt, ob die App für iPhone 6 und iPhone 6+ skaliert wird ???

Paul G.

+0

Es gibt keine solche Einstellung. Sie müssen Sie die richtigen Einschränkungen einrichten.Wenn Sie es zentriert verwenden möchten, verwenden Sie eine centerX-Einschränkung (keine führende Kante), und es wird in jeder Größe Bildschirm zentriert werden. – rdelmar

+0

@ rdelmar, Apps im App Store vor iPhone 6 wird automatisch skaliert für iPhone 6. Warum? Was bestimmt das. – Fraggle

+0

Wie gesagt, Sie müssen die richtigen Einschränkungen einrichten.Wenn Sie eine Center-Constraint statt einer Kante verwenden, wird es automatisch zentriert, unabhängig von der Bildschirmgröße Sie müssen Ihre Einschränkungen so gestalten, dass zukünftige Änderungen in s berücksichtigt werden Bildschirmgröße. – rdelmar

Antwort

6

Ok, ich fand es:

What's new in iOS8

„das System zu informieren, dass Ihre App die iPhone 6 Bildschirmgrößen unterstützt, umfasst eine Storyboard Startbildschirm-Datei in Ihrem App-Bundle: Zur Laufzeit sucht das System nach einer Storyboard-Startbildschirm-Datei Wenn eine solche Datei vorhanden ist, geht das System davon aus, dass Ihre App das iPhone 6 und 6 Plus explizit unterstützt und im Vollbildmodus ausführt Das System meldet eine kleinere Bildschirmgröße (entweder 320 mal 480 Punkte oder 320 mal 568 Punkte)), damit die bildschirmbasierten Berechnungen Ihrer App weiterhin korrekt sind. Der Inhalt wird dann skaliert, um die größeren Bildschirm passen.“

So entfernte ich LaunchImage.xib (die dort automatisch gesetzt wurde) und ich entfernt den Eintrag für das in der plist.

+0

Jeder, der dies tut, sollte erwägen, das automatische Layout zu verwenden, anstatt von der Skalierung abhängig zu sein. Was bei der Skalierung passiert, ist, dass Sie die gleiche Skalierung für Elemente wie die Navigations-/Statusleiste und die Tastatur erhalten, anstatt die größere Bildschirmgröße zu nutzen. Sie erhalten also eine gezoomte App mit der gleichen Auflösung wie ein kleineres Smartphone, für das Sie gedacht haben, anstatt die automatische Layoutfunktion zu verwenden, um sicherzustellen, dass Ihre App sowohl für kleine iPhones als auch für größere Bildschirme (iphone 6 und ipads) funktioniert. Siehe Tipp 2 hier. http://www.raywenderlich.com/89816/porting-app-iphone-6-iphone-6-plus-ios-8-top-10-tips – mitrenegade

+0

@mitrenegade, ja das ist wahr, aber seltsamerweise automatisches Layout nicht automatisch Skalieren Sie die Einschränkungen für die entsprechende Bildschirmgröße. Wenn Ihr Bildschirm komplexer als einige Tabellenansichten mit voller Breite ist, stellt dies Probleme dar, die zwar nicht lösbar sind (Größenklassen, programmgesteuertes Ändern von Einschränkungen, verschiedene Storyboards usw.). Letztendlich denke ich, dass Apple ein Feature haben sollte, um Einschränkungen automatisch zu skalieren. – Fraggle

+0

stimme ich voll und ganz zu. Immer wenn ich auf einen komplexeren Bildschirm stoße, ist es schon ein Problem, sie relativ korrekt für die iPhone-Größen zu skalieren.Was auf einem iPhone 4S gut aussieht, sieht bereits auf einem iPhone 6 nicht gut aus. Ich denke, dass, wenn ein Bildschirm komplex genug ist, damit das automatische Layout ein Schmerz sein kann, es wahrscheinlich ein Punkt ist, an dem Sie ein Layout für ein Tablette. Sofern Sie keine Zeit dafür haben, wäre Skalierung die nächste Lösung. Ich habe einige komplexe Möglichkeiten gefunden, um Constraints "skalieren" zu lassen und es ist normalerweise eine fallweise Lösung. Autolayout hat viel mehr Tiefe als die meisten wissen. – mitrenegade