2016-03-21 14 views
0

Ich entwickle Porträt Auflösung App, die alle iPhone-Bildschirme unterstützt. Ich bin nicht Skalierung so muss ich jede Bildschirmgröße gerecht zu werden. iPhone 6 Plus haben 1242 x 2208 (@ 3x) für Porträt und iPhone 6 haben 750 x 1334 (@ 2x) für Porträt.iOS- Bildressource für iPhone 6 und 6 plus

Normalerweise würde ich volle Breite Bild Grafik in 320 @ 1x, 640 @ 2x und 960 @ 3x erstellen. Aber jetzt wird es nicht funktionieren. Muss ich volle Breite Größe Bilder für jede Auflösung getrennt machen?

Wie ich 640 @ 2x für iPhone 5s oder früher und 750 @ 2x für iPhone 6 und 1242 @ 3x für iPhone 6 schaffen würde und.

Muss ich verschiedene Bilder für jede Auflösung machen? Gehe ich in die richtige Richtung oder gibt es eine bessere Lösung?

Antwort

1

Das iPhone 6 und iPhone 5 verwendet die gleichen @2x Bilder, aber da die Auflösung auf beiden Geräten unterschiedlich ist, ist es am besten, die verschiedenen Bilder für beide zu erhalten.

Auf iPhone 6, wenn das Bild des iPhone 5 geladen wird, werden Sie einige Verzerrungen sehen.

Auf der anderen Seite, wenn Sie Bild von 750 x 1334 (@ 2x) für iPhone 6 haben und wenn Sie dieses iPhone 5 oder 4 Ionen laden, dann sehen Sie Squeeze-Bild, da es von höherer Auflösung ist.

Aber das Problem ist, dass, wenn Sie beide iPhone_5 @ 2x und iPhone_6 @ 2x dann Xcode wird nicht das Bild auf welchem ​​Gerät geladen werden. Also habe ich eine Funktion zur Unterscheidung der Bilder zur Laufzeit erstellt.

//MARK: Load Images for particular device 
func getDeviceSpecificImage(imgName: String) -> String{ 

var imageName: String? 

    switch UIScreen.mainScreen().bounds.width{ 

     case 320: 
      imageName = String(format: "%@[email protected]", imgName) 

     case 375: 
      imageName = String(format: "%@[email protected]", imgName) 

     case 414: 
      imageName = String(format: "%@[email protected]", imgName) 

     default: 
      break 
    } 

    return imageName! 
} 

Hoffe, das hilft!