簡體   English   中英

忽略iOS高分辨率@ 2x文件

[英]Ignoring iOS high-resolution @2x files

我有一個包含大量圖像(1000+)的應用程序。 我有一個數據庫表,其中包含這些圖像的所有文件名。 使用UIImage* image = [UIImage imageNamed:...]根據此文件名按需加載UIImage* image = [UIImage imageNamed:...]

由於圖像數量很多,我想以編程方式進行測試,以確保數據庫中包含的所有圖像實際上都存在於項目中。 為了實現這一點,我從表中提取所有文件名,循環遍歷每個文件名,運行上面的代碼,並檢查image != nil 這很好用。

問題是我想確認正常分辨率和高分辨率(@ 2x)圖像都存在。 如果存在高分辨率文件但是普通分辨率文件不存在,我的代碼將不會檢測到這一點。

有沒有辦法在沒有運行此過程兩次的情況下實現這一點,每種分辨率類型一次? 我可以強制SDK忽略@ 2x文件嗎?

你應該只使用NSFileManager 它可能會快得多,因為它實際上不會加載圖像文件的內容。 對於每個fileName,使用NSFileManagerfileExistsAtPath方法檢查圖像。 然后,將“@ 2x”附加到基本名稱以檢查2x圖像。

我會使用NSBundle來定位文件,所以UIImage不必加載到內存中,你可以使用像...

NSBundle *myBundle = [NSBundle mainBundle];
if([myBundle pathForResource:@"MyImage" forType: @"png"] == nil){
    // low res image isn't there
}

if([myBundle pathForResource:@"MyImage@2x" forType: @"png"] == nil){
    // high res image isn't there
}

應該快得多......

暫無
暫無

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

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