2016-10-17 126 views
-1

我有一個任務將NSString顏色名稱ex:「Green」從configuration.plist文件轉換爲UIColor或十六進制顏色代碼,例如「00ff00」。我已經有了將十六進制顏色代碼轉換爲UIColor的代碼。我試圖用這個任務的另一個代碼示例,但不工作。 請幫我解決這個問題。將NSString顏色名稱轉換爲UIColor

+0

你想將十六進制顏色代碼轉換爲UIColor權利? –

+1

[如何將NSString轉換爲UIColor]可能的重複(http://stackoverflow.com/questions/8228339/how-to-convert-nsstring-to-uicolor) – alexburtnik

+0

@Darshan,用戶輸入將會像**「石灰「**,並應相應地應用顏色。 –

回答

0

想到如果你正在使用SWIFT可以伊斯利開發該系統的顏色做到這一點。都開始定義一組不可能性的顏色在一個枚舉這樣的:

enum MyColor: String { 
    case green 
    case red 
    case blue 
    // and so on 

    var hex: Int { 
     switch self { 
      case green: return 0xABCDF 
      case red: return 0xABCDF 
      case blue: return 0xABCDF 
     } 

    } 
} 

然後你需要爲使用這個新的枚舉

extension UIColor { 

    convenience init(myColor: MyColor) { 
     self.init(hex: myColor.raw) 
    } 

    init(hex: Int) { 
    } 
} 

之後,你可以用來初始化侑顏色的UIColor類新的init像這樣:

let theColor = MyColor(rawValue: "green") 
let color = UIcolor(myColor: theColor) 
+0

謝謝iGenio,我會試試這個。 –

+0

對不起,如果有一些語法錯誤,但我現在沒有xcode。 – iGenio

+0

這不是一個問題,但我得到了你想要解釋的。謝謝。 –

0

這可以實現的唯一方法是如果您在應用程序中存儲顏色名稱的十六進制顏色代碼。

您可以維護一個屬性列表或將這些鍵值對存儲在覈心數據中。

您的應用程序會做這樣的事情

紅:「十六進制紅色」 藍:「十六進制爲藍」 綠色:「十六進制綠色」

在其中存儲這些密鑰的方式價值對取決於你。現在,當您需要從顏色名稱中獲取顏色時,只需查看它的十六進制代碼並將其轉換爲UIColor即可。

你將不得不對所有您在您的應用程序

+0

謝謝沙燕,有沒有其他辦法來完成我的任務。 –

+0

@PrashanthKp不在我看來。你可以在互聯網上做一些研究,以確保 –

+0

謝謝@Shayan,實際上我正在爲此尋找解決方案,但我認爲這可能是解決方案,因爲很少有人已經建議我這樣做。 –