2016-03-03 48 views
0

我的資產目錄中有多個圖片,如下所示。有沒有加載圖像,而無需每次都使用硬編碼字符串的簡便方法:從不知名的情況下從xcassets加載圖片

var images = [UIImage]() 
images.append(UIImage(named: "South_America-Argentina")!) 
images.append(UIImage(named: "South_America-Bolivia")!) 
images.append(UIImage(named: "South_America-Brazil")!) 
// ... 

xcassets

回答

0

目前無法在不知道名稱的情況下從xcassets加載圖像。一種方法是將圖像名稱存儲在枚舉中,因爲已經提到了@totiG,但有超過100個標記,這將非常耗時。

幸運的是誰已經這樣做對我們是一個庫:FlagKit

0

一個用於存儲圖像的名稱的方法是用枚舉。我已經提供了兩種方式來做到這一點 - 第二種方式給你一個很好的分組。

//Method 1 
enum CountryFlags: String { 
    case Argentina = "South_America-Argentina" 
    case Brazil = "South_America-Brazil" 

    var image: UIImage? { 
     return UIImage(named: self.rawValue) 
    } 
} 

//Method 2 
enum CountryImages { 
    enum SouthAmerica: String { 
     case Argentina = "South_America-Argentina" 
     case Brazil = "South_America-Brazil" 

     var image: UIImage? { 
      return UIImage(named: self.rawValue) 
     } 
    } 
    enum Africa: String { 
     case Egypt = "Africa-Egypt" 

     var image: UIImage? { 
      return UIImage(named: self.rawValue) 
     } 
    } 
} 

您可以使用它像這樣:

let method1Image = CountryFlags.Argentina.image 
let method2Image = CountryImages.SouthAmerica.Argentina.image 

如果您的圖片進行命名不同但是,例如,通過國家代碼,那麼你就可以得到的國家代碼在清單列表,只是環加載圖像。因此,如果您需要使用代碼AR加載阿根廷國旗,則可以使用UIImage(名爲:「AR」)

+0

的問題是,我有超過100個旗,我會寫他們每個人的情況。 – ammerzon

相關問題