Bildauflösung für neues iPhone 6 und 6+, @ 3x Unterstützung hinzugefügt?

141

Ich habe mir hier und hier einige Artikel und Diskussionen über Bildauflösungen angesehen, die neue iPhones für die Anzeige mit @ 3x-Bildern verwenden. Ist es wahr?

Bedeutet das also, dass wir drei Bilder behalten müssen? Angenommen, ich habe ein Bild von 50 x 50, muss ich 3 Bilder behalten, um das Erscheinungsbild für neue iPhones zu optimieren?

  • Normal (50 x 50)
  • @ 2x - Netzhaut (100 x 100)
  • @ 3x - Retina HD (150 x 150)

Oder verwenden die neuen Telefone nur @ 2x-Bilder und es gibt nichts Vergleichbares wie @ 3x?

Ich habe getestet, indem ich ein Beispielprojekt erstellt habe, und alle Simulatoren scheinen @ 3x-Bilder zu verwenden. Dies ist verwirrend.

Bearbeiten

Hier noch ein paar Infos

  • 3GS (163 ppi, also Normal verwenden)
  • 4, 4s, 5 und 5s (326 ppi, also verwenden wir @ 2x)
  • 6 (326 ppi, also scheint es, als würde es @ 2x verwenden)
  • 6 plus (401 ppi hier liegt die Verwirrung)

Bearbeiten

Basierend auf den Antworten von Tsob und Nitin habe ich meinem Projekt @ 3x Bilder hinzugefügt.

Informationsbearbeitung

Ich sehe, dass nur wenige Benutzer verwirrt sind, warum das iPhone 6 @ 2x-Bilder verwendet, obwohl es eine höhere Auflösung hat. Der Grund dafür ist

Das iPhone 6 hat möglicherweise eine andere Auflösung, aber die gleiche Dichte pro Pixel Zoll (PPI).

  • Die Auflösung betrifft eine absolute Anzahl von Pixeln.
  • Die Dichte (auch bekannt als Pixel pro Zoll - PPI) betrifft eine relative Anzahl von Pixeln pro Zoll, die bei iPhone 6 und früheren iPhones gleich ist, bei iPhone 6 plus jedoch unterschiedlich ist.

Weitere Informationen hierzu finden Sie hier in diesem Thread

Daher verwendet das iPhone 6 das gleiche @ 2x-Bild wie die iPhones 4, 5 und 5S, da es das gleiche PPI hat und das iPhone 6 plus @ 3x verwendet.

Bhumit Mehta
quelle
Was nützt dann die Retina 4 2x, wenn keiner der Geräte sie benutzt?
Mrunal
1
Ich bin damit einverstanden, dass die Dichte für 4, 5 und 6 iPhones gleich ist, aber wie kann man ein Problem mit unterschiedlicher Auflösung lösen? Es ist also ein großer Unterschied von 640 x 960 und 750 × 1334 Pixel. Wenn ich ein Hintergrundbild verwenden muss, das den gesamten Bildschirm überlagert. Wie kann ich in diesem Fall Bild-Xcassets einstellen?
Matrosov Alexander
@MatrosovAlexander wie hast du das gelöst?
Mário Carvalho
Als Problemumgehung habe ich das iPhone 6-Bild auch für das @ 2x-Bild verwendet, aber es ist merkwürdig, dass xcode kein geeignetes Bild dafür hat
Matrosov Alexander

Antworten:

54

Ich habe in einem Beispielprojekt versucht, Standard-, @ 2x- und @ 3x-Bilder zu verwenden, und der iPhone 6+ -Simulator verwendet das @ 3x-Bild. Es scheint also, dass @ 3x Bilder zu machen sind (wenn der Simulator tatsächlich das Verhalten des Geräts repliziert). Aber das Seltsame ist, dass alle Geräte (Simulatoren) dieses @ 3x-Bild zu verwenden scheinen, wenn es sich in der Projektstruktur befindet, auch iPhone 4S / iPhone 5.
Der Mangel an Kommunikation von Apple über eine potenzielle @ 3x-Struktur, während Entwickler gebeten werden, ihre iOS8-Apps zu veröffentlichen, ist ziemlich verwirrend, insbesondere wenn diese Ergebnisse auf dem Simulator angezeigt werden.

** Von Apples Website bearbeiten **: Dies wurde auch im Abschnitt "Was ist neu in iOS 8?" Im Entwicklerbereich von Apple gefunden:

Unterstützung für eine neue Bildschirmskala Das iPhone 6 Plus verwendet ein neues Retina HD-Display mit einer Bildschirmskala von 3,0. Fügen Sie neue Grafiken für diese Bildschirmskala hinzu, um die bestmögliche Erfahrung mit diesen Geräten zu erzielen. In Xcode 6 können Asset-Kataloge Bilder in den Größen 1x, 2x und 3x enthalten. Fügen Sie einfach die neuen Bildelemente hinzu, und iOS wählt die richtigen Elemente aus, wenn es auf einem iPhone 6 Plus ausgeführt wird. Das Bildladeverhalten in iOS erkennt auch ein @ 3x-Suffix.

Ich verstehe immer noch nicht, warum alle Geräte das @ 3x zu laden scheinen. Vielleicht liegt es daran, dass ich normale Dateien und keine xcassets verwende? Werde es bald versuchen.

Nach weiteren Tests bearbeiten: Ok, es scheint, dass iOS8 einen Vortrag darüber hat. Beim Testen auf einem iOS 7.1 iPhone 5-Simulator wird das @ 2x-Bild korrekt verwendet. Beim Starten unter iOS 8 wird jedoch das @ 3x auf dem iPhone 5 verwendet. Ich bin mir nicht sicher, ob dies ein gewünschtes Verhalten oder ein Fehler in iOS8 GM oder Simulatoren in Xcode 6 ist.

TSob
quelle
2
Ja, ich habe mit einem Simulator getestet, alle Geräte machen @ 3x Bilder, was in der Tat verwirrend ist
Bhumit Mehta
Ab heute wäre der bestmögliche Weg, "@ 2x" in Bildnamen zu verwenden, aber irgendwie die Geräteprüfung auf 6 Plus und ein 3x-Bild OHNE "@ 3x" zu verwenden, um die 2x-Geräte nicht zu vergiften?
Darkheartfelt
Es scheint, dass die 3-fache Auswahl auf dem iPhone 6 nur dann erfolgt, wenn das betreffende Asset JPG anstelle von PNG ist.
Emreberge
102

AKTUALISIEREN:

Neuer Link für die Bildgröße der Symbole von Apple.

https://developer.apple.com/ios/human-interface-guidelines/graphics/image-size-and-resolution/

Geben Sie hier die Bildbeschreibung ein


Ja, hier stimmt es. Apple bietet offizielle Dokumentation zu Symbolen oder Bildgröße

Geben Sie hier die Bildbeschreibung ein

Sie müssen Bilder für iPhone6 ​​und iPhone6 ​​+ einstellen

Für iPhone 6:

750 x 1334 (@2x) for portrait

1334 x 750 (@2x) for landscape

Für iPhone 6 Plus:

1242 x 2208 (@3x) for portrait

2208 x 1242 (@3x) for landscape

Für weitere Informationen zu Bildern und ihrer Auflösung ist dies der beste hilfreiche Beitrag aller Zeiten

Zum Einstellen der Bildgröße für Steuerelemente können Sie 1x @ 2x und @ 3x wie folgt einstellen:

Geben Sie hier die Bildbeschreibung ein

Nitin Gohel
quelle
8
Wenn alle Geräte 2x oder 3x Retina sind, warum fordert der Assets-Katalog 1x Bilder für Projekte an, die nur unter iOS 7/8 für das iPhone ausgerichtet werden sollen? Macht keinen Sinn.
Ente
1
könnte das für iphone4 @RubberDuck sein :) siehe, dass iPad 2 und iPad Mini, die 1x benötigen
Nitin Gohel
Entschuldigung, aber Sie haben nicht gelesen, was ich geschrieben habe. Ich spreche von einem iPhone-Projekt für iOS 7. Es gibt kein iPhone mit 1x, auf dem iOS 7 ausgeführt werden kann, aber der Assets-Katalog fragt immer noch danach.
Ente
@RubberDuck Wählen Sie Ihr Image-Asset aus und zeigen Sie den Dienstprogrammbereich auf der rechten Seite von Xcode an. Eine der Registerkarten enthält eine Reihe von Kontrollkästchen. Möglicherweise sind in Ihren Assets zu viele Kontrollkästchen aktiviert, sodass 1x als Option angezeigt wird.
rmaddy
10

Ich habe getestet, indem ich ein Beispielprojekt erstellt habe, und alle Simulatoren scheinen @ 3x-Bilder zu verwenden. Dies ist verwirrend.

Erstellen Sie verschiedene Versionen eines Bildes in Ihrem Asset-Katalog, sodass das Bild selbst angibt, um welche Version es sich handelt:

Geben Sie hier die Bildbeschreibung ein

Führen Sie nun die App nacheinander auf jedem Simulator aus. Sie werden sehen, dass das 3x-Bild nur auf dem iPhone 6 Plus verwendet wird.

Das Gleiche gilt, wenn die Bilder aus dem App-Bundle unter Verwendung ihrer Namen (z. B. one.png , [email protected] und [email protected] ) durch Aufrufen imageNamed:und Zuweisen zu einer Bildansicht gezeichnet werden .

(Es gibt jedoch einen Unterschied, wenn Sie das Bild in Interface Builder einer Bildansicht zuweisen. Die 2x-Version wird auf Geräten mit doppelter Auflösung ignoriert. Dies ist vermutlich ein Fehler, anscheinend ein Fehler in pathForResource:ofType:.)

matt
quelle
1
Sie haben das Asset als "universell" markiert, weshalb Sie ein konsistentes Verhalten sehen. Versuchen Sie stattdessen "Gerätespezifisch" im Dropdown-Menü auszuwählen!
Nikolay Spassov
1
@RalphZhouYuan Es funktioniert jetzt gut für mich. Sie werden die 2x-Version nicht aufgelistet sehen , sondern nur die 1x-Version zuweisen und die 2x- oder 3x-Version wird korrekt verwendet. Oder verwenden Sie einfach einen Asset-Katalog.
Matt
1
@RalphZhouYuan Hier ist mein herunterladbares Beispiel: github.com/mattneub/Programming-iOS-Book-Examples/tree/master/… - es werden sowohl Bilddateien im App-Bundle als auch Bilddateien im Asset-Katalog angezeigt und alle funktionieren ordnungsgemäß.
Matt
3
@matt Endlich stelle ich fest, dass mein Problem mit den Bereitstellungszieleinstellungen (6.0) meiner App zusammenhängt. Ich habe eine Frage geöffnet: stackoverflow.com/questions/26333278/… und einen Fehlerbericht an Apple gesendet .
Uncii
1
@RalphZhouYuan Wow, großartige Detektivarbeit, die das aufspürt! Vielen Dank für Ihre Rückmeldung.
Matt
2

ios versucht immer, das beste Bild aufzunehmen, greift jedoch auf andere Optionen zurück. Wenn Sie also nur normale Bilder in der App haben und @ 2x Bilder benötigen, werden die normalen Bilder verwendet.

Wenn Sie nur @ 2x in das Projekt einfügen und die App auf einem normalen Gerät öffnen, werden die Bilder zur Anzeige verkleinert.

Wenn Sie auf ios7- und ios8-Geräte abzielen und die beste Qualität wünschen, benötigen Sie @ 2x und @ 3x für Telefon und Normal und @ 2x für iPad-Assets, da kein Nicht-Retina-Telefon und kein @ 3x-iPad mehr vorhanden ist.

Vielleicht ist es besser, die Assets in der App aus einer Vektorgrafik zu erstellen ... siehe http://mattgemmell.com/using-pdf-images-in-ios-apps/

Bastian
quelle
Verwenden Sie einfach den erstaunlichen PaintCode für Vektoren in Apps
Fattie