首页 > 解决方案 > 如何将字符串转换为 UIColor (Swift)

问题描述

我在我的 SKScene 中定义了几种颜色:

let color1 = UIColor(red: 1, green: 153/255, blue: 0, alpha: 1)
let color2 = UIColor(red: 74/255, green: 134/255, blue: 232/255, alpha: 1)
let color3 = UIColor(red: 0, green: 0, blue: 1, alpha: 1)
let color4 = UIColor(red: 0, green: 1, blue: 0, alpha: 1)
let color5 = UIColor(red: 153/255, green: 0, blue: 1, alpha: 1)
let color6 = UIColor(red: 1, green: 0, blue: 0 , alpha: 1)

这些颜色对应于我的游戏中具有不同值的图块。一个瓷砖与 color1 等...

当瓷砖加在一起时,我添加了它们的值,并想根据它们的值给它们一个新的颜色。

所以我希望瓷砖的价值对瓷砖的颜色产生影响。

我努力了:

tile.color = UIColor(named: "color\(value)") ?? color1

但是当我这样做时,它总是使用默认值(color1)。

如何使瓷砖的价值对瓷砖的颜色产生影响?

标签: swiftstringtype-conversionuicolor

解决方案


命名UIColor的 s 是从 xcassets 目录中的颜色集初始化的。


您可以根据您的价值设置颜色

switch value {
    case 2: tile.color = color2
    ...
    default: tile.color = color1
}

或者您可以在 xcassets 目录中创建颜色集。

在此处输入图像描述 在此处输入图像描述 在此处输入图像描述


推荐阅读