2014-11-02 31 views
6

Ich verwende Asset-Katalog, der Bilder von beiden enthält: 2x, Retina 4 2x und 3x. Alle diese Dateien werden in den richtigen Geräten verwendet iPhone 4, 4s => 2x, iPhone 5, 5s => Retina 4 2x, iPhone 6+ => 3x, aber iPhone 6, die 2x anstatt der Retina 4 2x verwendet. Hat jemand dieses Problem festgestellt?Asset-Katalog Bilder des Typs Retina 4 2x nicht auf iPhone 6

Dank

[Bearbeitet Text] Das Bild Set ist ein allgemeines Bild und kein Startbildschirm. Egal, ob ich universelle oder Geräteeinstellungen verwende, und egal, ob ich die 2x Retina 4 als 1334 oder 1136 auswähle, das Bild auf dem iPhone 6 ist das von 2x.

Ich füge Screenshots der drei verschiedenen Einstellungen Ich wählte und für alle drei das Ergebnis war der Screenshot des anhang Simulator

--------------- Screen Shot von Simulator (iPhone 6): ---------------

Simulator

--------------- Screenshot der Einstellungen mit Gerät einschließlich 568: ---------------

Device with 568

--------------- Screenshots der Einstellungen mit dem Gerät einschließlich 667 ---------------

Device with 667

--------------- Screenshot der Einstellungen mit der Universal --------------- Universal

--------------- Screenshot von sett Ings des Bildsatz (Geräteeinstellungen 667 & Höhenbild) --------------- enter image description here

--------------- Screenshot von der Startrampe ---------------- enter image description here

+0

Können Sie einen Screenshot von Ihrem Asset Katalog zeigen, ist Ihre Frage nicht sehr klar und es könnte helfen. – Abizern

+0

Sprechen Sie über Startbilder, App-Symbole oder ein allgemeines Bild? – rmaddy

+0

Ich beantwortete Ihre Fragen durch Bearbeiten der ursprünglichen Frage – Shachar

Antwort

0

ich glaube, dies ist ein bekanntes Problem mit gerätespezifischen Einstellungen im Asset-Katalog. Verwenden Sie stattdessen die universellen Einstellungen (1x, 2x und 3x). Das iPhone 5, 5s und 6 werden dann alle 2x verwenden und alles wird gut.

+0

Danke, aber ich habe es auch versucht, aber das Ergebnis ist das gleiche – Shachar

+0

Lassen Sie mich Sie fragen: Haben Sie daran gedacht, ein dediziertes iPhone 6 Launch Image zu erstellen (oder verwenden Sie ein Start Image XIB/Storyboard)? Wenn Sie dies nicht tun, wird Ihre App auf dem iPhone 6 hochskaliert und so behandelt, als wäre das ein anderes Gerät. – matt

+0

Ja, ich habe gerade einen Screenshot davon in der ursprünglichen Nachricht hinzugefügt – Shachar

3

Von dem, was ich sagen kann, scheint es, dass Sie ein Vollbild in nativer Auflösung anzeigen möchten.

Ja, ich denke, das könnte ein bekanntes Problem sein. Ich denke nicht, dass Sie es mit einem Asset-Katalog tun können.Ich landete hier tun es, wie dieser Kerl: https://stackoverflow.com/q/25892207/342756

Meine App ist Landschaft, mnd mein Hintergrundbild, das den gesamten Bildschirm in nativer Auflösung füllt nenne ich genau wie diese:

[UIImage imageForDeviceWithName: @ „myBackground“ ];

Und hier ist die Liste der Dateien und Auflösungen für "myBackground" (wieder Landschaft):

Ich unterstütze 1x nicht mehr. Dies deckt praktisch alle iOS 7 und iOS 8 Geräte ab. Hoffe das hilft.

Prost!

+0

Diese Lösung funktioniert auch gut mit xcode7, welches die Retina4-Assets vollständig entfernt hat (warum ?? gibt es einen anderen Weg). Es lädt standardmäßig @ 2x Bilder passen Sie für die höheren Geräte auf das iPhone4 und 4s und nicht auf Bilder. Ich beziehe mich auf Vollbild-Bilder wie den Hintergrund (keine Bilder starten). – pechar

1

Dies funktioniert in Xcode v7.3 und verifiziert in iPhone 4s Simulator mit iOS v9.3.

Probleme Skalierung Um zu vermeiden, habe ich folgendes:

In meinem Images.xcassets ich zwei Bilder Sets erstellt:
intro_screen
intro_screen_4

Im intro_screen enthalten ich die folgenden Bilder
1x 320x480
2x 750x1334
3x 1242x2208

Im intro_screen_4 ich für das iPhone nur das Bild enthalten 4
2x 640x960

In meinem Code, ich habe folgendes:

int screenHeight = [ [ UIScreen mainScreen ] bounds ].size.height; 

if(screenHeight == 480) 
{ 
    image = [UIImage imageNamed:@"intro_screen_4" ]; 
} 
else { 
    image = [UIImage imageNamed:@"intro_screen" ]; 
}