2013-09-06 24 views
12

Ich mache Bilder für meine UITabBar. Ich mache sie in der Größe 60x60, weil das die Retina-Bildschirme benutzen. Wenn ich jedoch diese Größe verwende, wird sie in der Leiste zu groß angezeigt, sodass Sie nur einen Teil des Bildes sehen können. Wenn ich es auf 30x30 reduziere, funktioniert es, aber diese Größe sollte für Nicht-Retina-Displays sein. Warum wird es nicht richtig angezeigt, wenn ich 60x60 benutze?UITabBarItem Bildgröße

+5

sicher, dass Ihre 60x60 Retina Bild Stellen mit dem '@ 2x' Suffix in Namen der Dateiname – rmaddy

+0

Danke, das hat funktioniert !! – user2397282

+0

mögliches Duplikat von [iOS7 Tabbar Icons zu groß] (http://stackoverflow.com/questions/22166644/ios7-tabbar-icons-too-big) –

Antwort

6

Sie erhielten dieses Verhalten, weil Sie ein hochauflösendes Bild lieferten, als iOS nach einem Bild in Standardauflösung suchte.

iOS wählt automatisch die geeignete Bildgröße für Sie aus, abhängig von der Auflösung des zugreifenden Geräts. Sie sind also verantwortlich für die Bereitstellung eines Bilds mit "Standardauflösung" für Nicht-Retina-Geräte und eines Bildes mit "hoher Auflösung" für Retina-Displays. Die Art und Weise Sie dies in iOS zu tun ist „@ 2x“ bis zum Ende des Dateinamen anzuhängen, aber vor der Dateierweiterung, wie folgt aus:

my-image.png  // for non-retina displays (Ex: 30x30 dpi) 
[email protected] // for retina displays (Ex: 60x60 dpi) 
[email protected] // for retina displays(plus editions) (Ex: 90x90 dpi) 

Dann, wenn Sie Dateien in Ihrem XCode-Projekt verweisen, Sie muss nur den Dateinamen der Standardauflösung angeben (z. B. "my-image.png") und wenn das zugreifende Gerät über ein Retina-Display verfügt, wählt XCode automatisch die Datei mit dem Suffix "@ 2x" für Sie aus (). Dies ist sehr praktisch, da Entwickler dadurch nicht feststellen müssen, ob das Gerät über ein Retina-Display verfügt und welches Bild wir liefern müssen.

Hier ist ein Codebeispiel:

// Select an image named "my-image.png" 
UIImage *img = [UIImage imageNamed:@"my-image.png"]; 

// If the device this code is run on is a retina device, 
// then Xcode will automatically search for "[email protected]" and "[email protected]" 
// otherwise, it will use "my-image.png" 

Sie mehr über das Thema über die Website des Apple Developer lesen: Optimizing for High Resolution