我有一个UIColors数组,如
[UIColor blueColor];
是否有可能从该UIColor中获得名称“ blue”,以字符串形式显示?
UIKit没有内置任何内容,但是Erica Sadun的uicolor-utilities library添加了类似的功能。
如果需要,可以获取UIColor的RGB和Alpha。
可以使用runtime
获得颜色名称列表。看到我的问题:How to get all Color methods of UIColor?
如果需要,您也可以使用字符串方法将'xxxColor'
转换为'xxx'
。
您可以使用此扩展名来获取通过XCode中的Color Assets创建的颜色的名称。
extension UIColor {
/// Name of color. Only colors created with XCode Color Assets will return actual name, colors created programatically will always return nil.
var name: String? {
let str = String(describing: self).dropLast()
guard let nameRange = str.range(of: "name = ") else {
return nil
}
let cropped = str[nameRange.upperBound ..< str.endIndex]
if cropped.isEmpty {
return nil
}
return String(cropped)
}
}
结果: