簡體   English   中英

在iPad iOS7中使用@ 2x加載UIImage與iOS8不同嗎?

[英]UIImage loading with @2x in iPad iOS7 is different with iOS8?

我發現在不同的iOS版本中加載圖像的結果是不同的。

環境1:iPad3,4 iOS7.02

//image scale is 1
UIImage *image2 = [UIImage imageNamed:@"momo05@2x.png"]; 
// image scale is 2
UIImage *image1 = [UIImage imageNamed:@"momo05"]; 

環境2:iPhone5s iOS 8.1

// image scale is 2
UIImage *image2 = [UIImage imageNamed:@"momo05@2x.png"]; 

為什么環境1中的image2結果與環​​境2不同? 但是environment1中的image1似乎可以正常工作。

您可以在快速幫助中獲取信息:

此方法在系統緩存中查找具有指定名稱的圖像對象,並返回該對象(如果存在)。 如果緩存中還沒有匹配的圖像對象,則此方法從磁盤或資產類別日志中查找並加載圖像數據,然后返回結果對象。 您不能假定此方法是線程安全的。

在運行iOS 4或更高版本的設備上,如果設備的屏幕縮放比例為1.0,則行為相同。 如果屏幕的縮放比例為2.0,則此方法首先搜索帶有相同文件名且后綴為@ 2x的圖像文件。 例如,如果文件名是button,則首先搜索button @ 2x。 如果找到2x,它將加載該圖像並將返回的UIImage對象的scale屬性設置為2.0。 否則,它將加載未修改的文件名,並將scale屬性設置為1.0。 有關支持不同比例因子的圖像的更多信息,請參見iOS的《應用程序編程指南》。

在iOS 4和更高版本上,如果文件為PNG格式,則無需指定.PNG文件擴展名。 在iOS 4之前,您必須指定文件擴展名。

如果您有一個僅顯示一次的圖像文件,並且希望確保不會將其添加到系統的緩存中,則應該使用imageWithContentsOfFile:創建圖像。 這樣可以將一次性圖像排除在系統圖像緩存之外,從而有可能改善應用程序的內存使用特性。

暫無
暫無

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

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