簡體   English   中英

iOS調整全屏圖像以適用於多種屏幕尺寸

[英]ios sizing a full screen image for multiple screen sizes

這更多是一個設計問題。

我想了解在處理不同的iPhone屏幕尺寸(3.5和4英寸)時如何處理圖像縮放。 我有一個4英寸屏幕的全屏568pt圖像。 我應該為3.5盒創建單獨的圖像還是縮小原始圖像? 在執行此操作時,我是否需要在代碼中放置一堆if / else塊以檢查設備類型以確定要使用的圖像?

有沒有更清潔的方法可以做到這一點?

如果您可以節省資源的大小,則最好為所有相關屏幕大小使用單獨的資產。 但是,就這一點而言,各有千秋。 一種為工作加載正確資產的簡單方法是為圖像名稱編寫一個宏,並在每個加載圖像的位置使用該宏,如下所示:

// S_IMG as in sized image?
#define S_IMG(img) [img stringByAppendingString: (([[UIScreen mainScreen] bounds].size.height == 568.0)? @"-568" : @"")]

然后,在加載圖像時,您只需執行

[UIImage imageNamed:S_IMG(@"horse")];

您將在其中擁有horse.pnghorse@2x.pnghorse-568@2x.png資產的horse-568@2x.png

我對屏幕尺寸也有同樣的疑問。 我最終為每個設備使用了單獨的資源,並在代碼中檢測屏幕大小以加載正確的圖像文件。

在這里寫下了步驟,說明了如何縮放以適應不同的屏幕尺寸,並在寬高比不同的情況下進行裁剪。 由於圖像太多,我最終制作了一個工具,可以為我針對每種屏幕尺寸自動調整大小和裁剪圖像。

您可以編寫UIImage類別,即UIImage + 4InchDisplay。

超載

+ (Nullable UIImage *) imageNamed: (NSString *) name; // load from main bundle

添加了分析功能

+ (BOOL) has4InchDisplay
{
     return ([UIScreen mainScreen] .bounds.size.height == 568);
}

然后連接字符串xxx-568@2x.png

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM