2012-09-24 72 views
9

我見過一些關於UIImage的帖子,自動在新的iOS6中加載文件名-568.png圖像,但我似乎無法在UIImageView類中重新創建它。ios6 UIImageView - 加載-568h圖像

我用故事板(不是我的應用程序,只是有做一些檢查),和我有一個簡單的佈局只是縮放到適合,在視圖控制器無碼的圖片瀏覽,並且我已經確保文件名.png文件名-568h.png存在(以及[email protected]以防萬一),但是當我加載它在iOS6模擬器。這一直是iOS 4和5,加載視網膜的@ 2x圖像,但似乎並不適用於iOS6。有任何想法嗎?

該圖像恰好被稱爲Default.png因爲它與啓動圖像相同,這可能是問題嗎?

感謝所有幫助提前

+0

我發現這裏回答: - http://stackoverflow.com/questions/12532405/images-for-iphone-5-retina-display - http://stackoverflow.com/questions/12431445/iphone -5-what-naming-convention-the-new-images-have-follow- – Thesalan

回答

32

iOS6的,因爲它與@ 2倍的圖像確實不會自動加載-568h。唯一的例外是默認屏幕,但比自己手動設置568h圖像更重要。

我創造了一些代碼使用[UIImage imageNamed:@""]方法時,以模仿爲-568h圖像裝載行爲,但是從IB我不認識路。如果你有興趣在這樣的解決方案,檢查出來的http://angelolloqui.com/blog/20-iPhone5-568h-image-loading

+0

實際上,我發現如果我在IB中將圖像指定爲「image.png」,那麼不管是什麼類型的手機模擬器,它會加載正確的文件,3.5英寸視網膜[@ 2x],4英寸視網膜[-568h @ 2x]。 如果我嘗試使用[UIImage imageNamed:]自己編碼,那麼它不起作用。 奇數。我將不得不像上面的@Angel Garcia Olloqui一樣。 – PKCLsoft

+1

我試過你的代碼,雖然它在模擬器中工作正常,但它不能編譯爲真實的設備。 #包括未能編譯。 – PKCLsoft

+0

我在代碼中沒有得到一件事:最後返回相同的方法,不創建遞歸循環? –

4

通常情況下,你應該只使用568h的推出圖像。如果您注意到自己在您的應用中使用了不同的圖片資源以獲得新的展示高度,則應該考慮您可能會讓您的界面太靜態。

最明顯的地方人們希望使用568h的圖像是背景圖像。另一種方法是隻有一個資產具有最大可能的維度,並使用UIView的contentMode屬性正確對齊它。

但是,也許你有一些浮在頂部和底部的形象,所以contentMode並不能解決問題。無論如何,你可以認爲頂部和底部的浮點數可能應該是單獨的視圖。

請記住,我們一直與不同高度進行應用。每當鍵盤彈出時,就好像屏幕縮小了一樣。

+1

我不同意你的最後一句話,鍵盤顯示在視圖頂部,它不縮小在所有的視圖。因爲iOS可以處理@ 2x圖像,而操作系統本身需要-568h來啓動屏幕,所以iOS能夠正確檢測-568h的資源。我認爲這迫使我們編寫可怕的代碼來處理iPhone 5的屏幕比例。 –

+0

如果你覺得蘋果迫使你「編寫可怕的代碼」,你應該退後一步,看看你是否不必要地違反了蘋果公約。在iOS中,這通常導致更多的工作,收益較低。 –

相關問題