我有3個圖像:iOS的不使用[email protected]
test.png
[email protected]
[email protected]
在IBOutlet中,一個UIImageView被設置爲顯示test.png。
在沒有視網膜iPhone 3.5英寸,它的顯示test.png
在iPhone上使用3.5英寸視網膜,它顯示[email protected]
但在iPhone 4英寸視網膜用,它顯示測試@ 2倍巴紐!
發生了什麼事?
謝謝!
我有3個圖像:iOS的不使用[email protected]
test.png
[email protected]
[email protected]
在IBOutlet中,一個UIImageView被設置爲顯示test.png。
在沒有視網膜iPhone 3.5英寸,它的顯示test.png
在iPhone上使用3.5英寸視網膜,它顯示[email protected]
但在iPhone 4英寸視網膜用,它顯示測試@ 2倍巴紐!
發生了什麼事?
謝謝!
[email protected]
後綴僅適用於Default.png啓動圖像。沒有特殊的後綴UIImage imageNamed:
(或其他UIImage
方法)使用。如果您需要4" 屏幕上的特殊圖像,您需要將代碼添加到自己獲得所需的圖像。
以下作品爲iPhone對於iPad的,你就需要更多的圖像。
對於三個版本的背景圖片,請使用以下的名稱:
(你不會因爲沒有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約定。
謝謝!這是比我在這個問題上看到的其他答案更加優雅和簡單的解決方案。其他大多數人都建議重寫UIImage的方法(如[這種做法](http://angelolloqui.com/blog/20-iPhone5-568h-image-loading)),但似乎有點小題大做我 –
我知道這是一個古老的線程,但我遇到了iPhone 6/6 +的新屏幕尺寸問題。
我所做的是使用不同的圖像文件命名約定:如果@
然後自動生成(全尺寸)圖像只是其中包括該旨趣項目代碼: https://gist.github.com/kevindelord/fe2e691d06ab745fbb00
你沒有事情做。當你實例在你的代碼的圖像:
[UIImage imageNamed:@"background.png」];
從要旨歸類類將automatically
創建對應於當前設備的圖像。
有一個吊艙它UIImage+Autoresize在案CocoaDocs。
真的嗎?!!?這吸吮! – 0xSina
除了啓動圖像之外,您是否真的擁有全屏大小的圖像?這是爲不同屏幕尺寸需要不同圖像的唯一原因,至少我能想到。在極少數情況下編寫幾行額外的代碼是很簡單的,這是一個問題。 – rmaddy
@rmaddy - 全屏幕背景圖像是您需要此功能的一個例子。所以,現在,通過代碼,我們必須做一個黑客並檢查顯示的寬高比和編程換出正確的圖像...... –