2016-09-21 47 views
0

在某些視圖控制器上,我將圖像用作整個屏幕的背景。我想知道最佳做法是什麼,因爲我想支持所有當前可用的iPhone(5-7)。通常對於圖像我會得到@ 2x和@ 3x圖像,但這裏情況有點不同?使用圖像作爲UIViewController的背景並支持多種屏幕尺寸

我是否將4張照片添加到應用程序,然後詢問系統在哪個設備上運行,並加載適當的照片?這看起來有點笨重,不是很優雅。

+0

使用'xcassets'來做到這一點,系統將負責自動加載所需的分辨率。 https://developer.apple.com/library/content/documentation/ToolsLanguages/Conceptual/Xcode_Overview/AddingImages.html –

+0

請記住,如果您的應用在iPad上運行,則仍需支持iPhone 4S縱橫比。我用'@ 2x'進行4,5,6和7縮放或裁剪。 (無論什麼看起來最好)和6/7plus的「@ 3x」。 –

回答

1

你真的沒有那麼多的選擇。

您可以爲不同的設備寬高比打包不同的圖像,檢查運行時的設備寬高比,並加載正確的圖像。這個實現是有缺陷的,因爲它沒有考慮未來的設備縱橫比。你可以有一個web服務,它返回給定長寬比的正確圖像,從客戶端取得這項工作。

你也可以創建一個看起來在所有設備大小良好單個圖像,並將圖像加載到一個UIImageView並設置其contentModeUIViewContentMode.scaleAspectFill填充整個圖像到視圖的框架,裁剪的頂部,底部的某些部分,或側面。

1

我已經通過使用'xcassets'解決了這個問題。系統基本上爲您處理「哪個設備大小」問題。另外,還可以使用不同的contentMode屬性(即'aspectFit','aspectFill','scaleToFill')。

我會注意的另一件事是'autoResizingMask'屬性的值。在大多數情況下,如果我的尺寸沒有達到我認爲應該達到的程度,我檢查是否給autoResizingMask一個「否」的值。

我希望這有助於!