ios - 如何根据 Hashtag Value 或 Hex Color Code 为按钮背景提供颜色,就像它曾经在 Objective-C 中一样?
问题描述
互联网上的每篇文章都建议我使用 RGB。但是,我想使用 Apple 的绿色调色板,我在冒险中是徒劳的。我知道它是标签值,但是由于我不知道在视图控制器文件中使用它的适当方法,因此无法在模拟器上呈现它。
从那以后,我已经能够使用Color Literal渲染所需的颜色,但是学习永远不会结束。而且,我想知道它的编码方式!
self.buttonStart.backgroundColor = UIColor(?)
? : 我应该在上述括号内放什么来完成我的任务。有什么建议么?
解决方案
您可以从十六进制字符串值实例化 a UIColor
,如下所示 -
public extension UIColor {
static func from(hexString: String) -> UIColor {
var cleanString = hexString.replacingOccurrences(of: "#", with: "")
if cleanString.count == 3 {
var updatedString = ""
cleanString.forEach({ updatedString.append("\($0)\($0)") })
cleanString = updatedString
}
if cleanString.count == 6 {
cleanString = cleanString.appending("ff")
}
var baseValue: UInt32 = 0
Scanner(string: cleanString).scanHexInt32(&baseValue)
let red = CGFloat((baseValue >> 24) & 0xFF)/255.0
let green = CGFloat((baseValue >> 16) & 0xFF)/255.0
let blue = CGFloat((baseValue >> 8) & 0xFF)/255.0
let alpha = CGFloat((baseValue >> 0) & 0xFF)/255.0
return UIColor(red: red, green: green, blue: blue, alpha: alpha)
}
}
现在从您的代码中,您可以像下面这样调用它 -
self.buttonStart.backgroundColor = UIColor.from(hexString: "#AABBCC")
推荐阅读
- android - 如何在颤动中列出文件?
- r - WGCNA包,功能:networkScreening
- bash - 在 Linux 上设置查找的默认选项
- python - 当列表以特定元素开始并以特定元素结束时,python中的列表切片列表?
- python - Pytorch 中的图像翻译,使用 affine_grid 和 grid_sample 函数
- postgresql - Rust 配方依赖于其他配方中的库
- asp.net-core - .exe 作为 Windows 服务错误 1053,以用户身份运行并且可以正常工作
- javascript - 在 asp net mvc 中获取引荐来源网址
- typo3 - 删除 Typ3 上的文件不会删除我的 FileReference
- python - 从 Pyspark 数据帧中包含 100 个文件的目录中仅加载前几个 .XML 文件(例如 10 个 xml)