2012-10-11 14 views
6

Für den Ladebildschirm und den Begrüßungsbildschirm meiner App habe ich zwei verschiedene Methoden verwendet, um meine iPhone 3, iPhone 4 und iPhone 5 Bilder entsprechend anzuzeigen.iOS Colorwithmuster - Verwendung eines benutzerdefinierten iPhone5-Bildes

Für den Ladebildschirm ist -568h @ 2x auf Ihr Bild einfaches Hinzufügen genug iPhone5 zu unterstützen.

Für den Splashscreen habe ich eine Reihe von Fällen (wenn Höhe ==) verwendet, um die Höhe der UIScreen-Grenzen zu überprüfen und das entsprechende Bild der Bildansicht zuzuordnen. Es war mir klar, dass das -568h nicht allgemein als iPhone 5-Bild erkannt wird. Dies gilt nur für den Ladebildschirm.

Jetzt, in meinem AppDelegate, setze ich ein Hintergrundbild. Alle meine Untersichten haben einen transparenten Hintergrund, also sollen sie sich zum Hintergrundbild hin zeigen. Am schwierigsten ist es jedoch, das Hintergrundbild hier einzurichten.

vorbei einfach in der „background.png“ die -568h @ 2x bis zum Ende des Dateinamens nicht funktioniert Hinzufügen. Es wird die nicht-Netzhaut und die 3,5-Zoll-Retina-Display, wird aber nicht für die 4-Zoll-Display abholen.

dh:

self.window.backgroundColor = [UIColor colorWithPatternImage:[UIImage imageNamed:@"Background.png"]]; 

Wenn ich das über Code-Snippet verwenden, wird das iPhone4 Bild anstelle des iPhone5 Bild verwendet und das ist nicht das, was ich will.

Ich habe versucht, das gleiche wie ich mit dem Splashscreen zu tun. Ich hatte ein paar, wenn Fälle:

CGFloat height = [UIScreen mainScreen].currentMode.size.height; 

if (height == 1136) 
{ 
    //Choose image here 
} 
else if (height == 960) 
{ 
    //Choose image here 
} 
else if (height == 480) 
{ 
    //Choose image here 
} 
self.window.backgroundColor = [UIColor colorWithPatternImage:[UIImage imageNamed:chosenImage]]; 

Aber die colorWithPatternImage Funktion denkt, dass die chosenImage um 1 Punkt = 1 Pixel geht. Also lande ich mit einem Nicht-Retina-Bild, das versucht, auf den iPhone 5-Bildschirm zu passen. Wie genau sieht es aus? Es sieht so aus, als ob nur der linke obere Quadrant des gewünschten Bildes über den gesamten Bildschirm des iPhone 5 angezeigt wird. Es scheint, dass keine Netzhautskalierung angewendet wurde.

Ich brauche das iPhone zu erkennen, dass ich einen Retina freundlichen iPhone 5 Bild habe als Hintergrund verwendet werden. Wie mache ich das?

Antwort

7

ich diesen Code here gefunden, vielleicht hilft es Ihnen:

UIImage *tmpImage = [UIImage imageNamed:@"[email protected]"]; 
UIImage *backgroundImage = [UIImage imageWithCGImage:[tmpImage CGImage] 
               scale:2.0 
             orientation:UIImageOrientationUp]; 
self.window.backgroundColor = [UIColor colorWithPatternImage:backgroundImage]; 
Verwandte Themen