webentwicklung-frage-antwort-db.com.de

Xcode 6 GM iPhone 6 Simulator - Storyboards werden nicht korrekt dimensioniert und erscheinen vergrößert

Ich verwende den neuen Xcode 6 GM Seed und teste meine App auf den iPhone 6 und iPhone 6 Plus-Simulatoren. Ich habe bei einigen Projekten, an denen ich zuvor gearbeitet habe, einen merkwürdigen Effekt, nämlich, dass die Ansichten einen "Zoom-In" -Effekt zu haben scheinen. 

Hier ist ein Beispiel. Beide dieser View-Controller sind bis auf die Beschriftungstextgröße exakt gleich (abgesehen vom unterschiedlichen Navigationselementtext). Sie können jedoch sehen, dass die Ansichten unterschiedlich aussehen.

vergrößert

normal

Beachten Sie, dass das Projekt mit dem seltsamen Zoomeffekt ein Implementierungsziel von 8.0 hat.

Hinweis: Das normal aussehende Projekt wurde mit dem neuen Xcode 6 GM Seed erstellt (die nicht funktionierenden Projekte wurden mit älteren Xcode-Versionen erstellt).

18
arcticmatt

Dies ist die Standardeinstellung und auf diese Weise funktionieren alle vorhandenen Apps auf den neuen iPhones - sie werden "gezoomt".

Um eine App zu erstellen, die tatsächlich die zusätzliche Bildschirmgröße verwendet, müssen Sie, wie bei den 4-Zoll-iPhones, spezielle Startbilder für die beiden iPhone 6 hinzufügen.

Wenn Sie Asset-Kataloge verwenden, wechseln Sie zum LaunchImages-Asset-Katalog und fügen Sie die neuen Startbilder für die beiden neuen iPhones hinzu. Möglicherweise müssen Sie mit der rechten Maustaste klicken und "Neues Startbild hinzufügen" auswählen, um einen Ort zum Hinzufügen der neuen Bilder anzuzeigen.

Durch die Verwendung einer Startbild-Xib-Datei anstelle von Bildern wird dieses Problem außerdem sofort gelöst. Dies ist die empfohlene Vorgehensweise. So fügen Sie Ihrer App einen Startbildschirm hinzu: https://stackoverflow.com/a/25763870/422288

22
rmaddy

Es sieht nicht so aus, als hätte Apple die Dokumente für die neuen Startbildgrößen aktualisiert, aber Sie können sie in Xcode finden. Wenn Sie die neuen Startbilder hinzufügen, wie Maddy sagt, können Sie die neuen Größen im Inspektorfenster anzeigen. iOS 8 enthält drei neue Bilder und erfordert keine unterschiedlichen Bilder, wenn die Statusleiste beim Start ausgeblendet wird. Die Größen sind:

iOS 8 iPhone Portrait
Retina HD 5.5  1242x2208
Retina HD 4.7  750x1334

iOS 8 Landscape
Retina HD 5.5  2208x1242

Sie können sie in Xcode hinzufügen oder die Json-Datei in der .xcassets-Datei bearbeiten und die Bilder in das Paket einfügen. Wenn Sie das Paket bearbeiten möchten, fügen Sie diese Zeilen am Anfang der Datei ein:

{
      "extent" : "full-screen",
      "idiom" : "iphone",
      "subtype" : "736h",
      "filename" : "[email protected]",
      "minimum-system-version" : "8.0",
      "orientation" : "portrait",
      "scale" : "3x"
    },
    {
      "extent" : "full-screen",
      "idiom" : "iphone",
      "subtype" : "736h",
      "filename" : "[email protected]",
      "minimum-system-version" : "8.0",
      "orientation" : "landscape",
      "scale" : "3x"
    },
    {
      "extent" : "full-screen",
      "idiom" : "iphone",
      "subtype" : "667h",
      "filename" : "[email protected]",
      "minimum-system-version" : "8.0",
      "orientation" : "portrait",
      "scale" : "2x"
    }

Ich habe die Namenskonvention beibehalten, die sie zuvor für die Portraitdateien verwendet haben. Es gab noch nie eine Landschaftsoption für Telefone, daher habe ich die Namenskonvention für iPads beibehalten. Sie können sie natürlich beliebig benennen.

Bearbeiten: Beachten Sie, dass das einzige Telefon, das im Querformat gestartet wird, das iPhone 6 Plus ist. Die restlichen Telefone können nur im Hochformat gestartet werden.

2
JScarry

Das Hinzufügen von Startbild löst dieses Problem nicht.

Sie müssen LaunchScreen.xib zum Projekt hinzufügen und Launch screen interface file base name - LaunchScreen zu Info.plist hinzufügen

Erstellen Sie ein neues Projekt mit Xcode 6 GM. Sie sehen, was LaunchScreen.xib ist. Sie können es in Ihr bestehendes Projekt kopieren.

2
Vince Yuan

das meiste von dem, was @rmaddy gesagt hat, funktioniert, aber wenn ich zu Images.xcassets gehe, um LaunchImage zu konfigurieren, wähle ich einfach "LaunchImage" und dann "Attribute-Inspektor" aus Die Schritte funktionieren auch für App-Symbole

1
0oneo

@JScarry, Ihre Lösung ist in Ordnung, erlaubt aber nicht, das Landschaftsbild auf dem iPhone 6 anzuzeigen. Hier ist eine Lösung, die funktioniert (Es müssen Quer- und Hochformatbilder in derselben Dimension sein gedreht)

0
Maciek Czarnik

Für mich ist das Problem gelöst:

Ich musste sowohl auf das Projekt als auch auf das Ziel klicken und die Zielgerätefamilie so ändern, dass nicht nur das iPhone, sondern auch das iPad angezeigt wird. Erst dann verschwand der vergrößerte Zoom

 enter image description here