2012-11-01 194 views

回答

9

[email protected]後綴僅適用於Default.png啓動圖像。沒有特殊的後綴UIImage imageNamed:(或其他UIImage方法)使用。如果您需要4" 屏幕上的特殊圖像,您需要將代碼添加到自己獲得所需的圖像。

+8

真的嗎?!!?這吸吮! – 0xSina

+0

除了啓動圖像之外,您是否真的擁有全屏大小的圖像?這是爲不同屏幕尺寸需要不同圖像的唯一原因,至少我能想到。在極少數情況下編寫幾行額外的代碼是很簡單的,這是一個問題。 – rmaddy

+0

@rmaddy - 全屏幕背景圖像是您需要此功能的一個例子。所以,現在,通過代碼,我們必須做一個黑客並檢查顯示的寬高比和編程換出正確的圖像...... –

7

以下作品爲iPhone對於iPad的,你就需要更多的圖像。

對於三個版本的背景圖片,請使用以下的名稱:

  1. 背景480h.png(480)
  2. [email protected](640×960)
  3. [email protected] (640x1136)

(你不會因爲沒有320x568 iPhone屏幕需要一個「-568h.png」的形象。)

當你設置的背景圖像,只需將屏幕的高度追加到圖像名稱:

NSString* imageName = [NSString stringWithFormat: @"background-%ih", (int)[[UIScreen mainScreen] bounds].size.height]; 
[view setBackgroundColor: [UIColor colorWithPatternImage: [UIImage imageNamed: imageName]]]; 

如果適用,iOS自動附加「@ 2x」。

您可以省略圖片名稱中的高度後面的「h」,但我認爲很好地模擬默認圖片的iOS約定。

+0

謝謝!這是比我在這個問題上看到的其他答案更加優雅和簡單的解決方案。其他大多數人都建議重寫UIImage的方法(如[這種做法](http://angelolloqui.com/blog/20-iPhone5-568h-image-loading)),但似乎有點小題大做我 –

2

我知道這是一個古老的線程,但我遇到了iPhone 6/6 +的新屏幕尺寸問題。

我所做的是使用不同的圖像文件命名約定:如果@

  • 沒有 1X小舊手機
  • @ 2X爲iPhone 4
  • -568h @ 2x對於iPhone 5
  • -667h @ 2x對於iPhone 6
  • @ 3倍爲iPhone 6加

然後自動生成(全尺寸)圖像只是其中包括該旨趣項目代碼: https://gist.github.com/kevindelord/fe2e691d06ab745fbb00

你沒有事情做。當你實例在你的代碼的圖像:

[UIImage imageNamed:@"background.png」]; 

從要旨歸類類將automatically創建對應於當前設備的圖像。

有一個吊艙它UIImage+Autoresize在案CocoaDocs

+0

的目的是什麼的DKHelper擴展? – 0xSina

+0

DKHelper是一個包含一大堆分類類的庫,用於改善iOS的日常開發。有很好的方法來處理NSDates,NSPredicates等等。如果你使用它,我會很高興! –

+0

在這種情況下DKHelper擴展的目的是什麼? – 0xSina

相關問題