所以我在一個常量( lernset.color)中有這個字串“綠色” 。我想將 a 設定為.foregroundColor()串列內的符號(systemName:“檔案夾”),以便它具有與常量(lernset.color)內所寫相同的顏色。我得到的問題:我不知道如何將這個具有 String 資料型別的常量( lernset.color )轉換為 Color 的資料型別。我已經嘗試過:
- ...
.foregroundColor(Color.lernset.color) - ...
.foregroundColor(Color.String(lernset.color)) - 我也嘗試將常量分配給變數......但是
沒有任何效果。
[所以通常你會輸入:.foregroundColor(Color.green)
但在這種情況下,我希望 List 自動適應,以便 Color 可以改變常量(lernset.color)變化的方式......
提前謝謝你的幫助
uj5u.com熱心網友回復:
采用
Color(lernset.color)
僅當 的值String被lernset.color定義為Color SetAssets
這
Color.lernset.color
要么
Color.green
參考一個static變數。你需要類似的東西
extension Color{
static let yourColor: Color = Color("nameHere")
}
然后你可以打電話
Color.yourColor
“nameHere”是一個名稱Color Set
uj5u.com熱心網友回復:
如果要使用字串,可以向 Color 添加擴展名:
extension Color {
static subscript(name: String) -> Color {
switch name {
case "green":
return Color.green
case "white":
return Color.white
case "black":
return Color.black
default:
return Color.accentColor
}
}
}
用法 :
Color[lernset.color]
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/455667.html
