在某些視圖控制器上,我將圖像用作整個屏幕的背景。我想知道最佳做法是什麼,因爲我想支持所有當前可用的iPhone(5-7)。通常對於圖像我會得到@ 2x和@ 3x圖像,但這裏情況有點不同?使用圖像作爲UIViewController的背景並支持多種屏幕尺寸
我是否將4張照片添加到應用程序,然後詢問系統在哪個設備上運行,並加載適當的照片?這看起來有點笨重,不是很優雅。
在某些視圖控制器上,我將圖像用作整個屏幕的背景。我想知道最佳做法是什麼,因爲我想支持所有當前可用的iPhone(5-7)。通常對於圖像我會得到@ 2x和@ 3x圖像,但這裏情況有點不同?使用圖像作爲UIViewController的背景並支持多種屏幕尺寸
我是否將4張照片添加到應用程序,然後詢問系統在哪個設備上運行,並加載適當的照片?這看起來有點笨重,不是很優雅。
你真的沒有那麼多的選擇。
您可以爲不同的設備寬高比打包不同的圖像,檢查運行時的設備寬高比,並加載正確的圖像。這個實現是有缺陷的,因爲它沒有考慮未來的設備縱橫比。你可以有一個web服務,它返回給定長寬比的正確圖像,從客戶端取得這項工作。
你也可以創建一個看起來在所有設備大小良好單個圖像,並將圖像加載到一個UIImageView
並設置其contentMode
UIViewContentMode.scaleAspectFill
填充整個圖像到視圖的框架,裁剪的頂部,底部的某些部分,或側面。
我已經通過使用'xcassets'解決了這個問題。系統基本上爲您處理「哪個設備大小」問題。另外,還可以使用不同的contentMode屬性(即'aspectFit','aspectFill','scaleToFill')。
我會注意的另一件事是'autoResizingMask'屬性的值。在大多數情況下,如果我的尺寸沒有達到我認爲應該達到的程度,我檢查是否給autoResizingMask一個「否」的值。
我希望這有助於!
使用'xcassets'來做到這一點,系統將負責自動加載所需的分辨率。 https://developer.apple.com/library/content/documentation/ToolsLanguages/Conceptual/Xcode_Overview/AddingImages.html –
請記住,如果您的應用在iPad上運行,則仍需支持iPhone 4S縱橫比。我用'@ 2x'進行4,5,6和7縮放或裁剪。 (無論什麼看起來最好)和6/7plus的「@ 3x」。 –