gpt4 book ai didi

ios - 我想将 String 转换为 UIColor

转载 作者:行者123 更新时间:2023-11-29 05:30:10 24 4
gpt4 key购买 nike

我正在研究ColorPickerView。

这是我想做的:1. 将获取到的颜色保存为userdefault中的String。 (用于传递到另一个 View )2.在另一个 View 中,我想检索存储在userdefault中的颜色字符串并将其返回给UIColor→ 2 不起作用。

当您在控制台上打印时“UI扩展SRGB颜色空间1 0.34895 0.297971 1”它以格式显示。

从该格式返回 UIColor 的方法不起作用。有没有办法获得红蓝绿alpha值?

从颜色选择器获取颜色

func colorPickerViewController(colorPickerViewController: AMColorPickerViewController, didSelect color: UIColor) {

//userdefault
ud.set("\(color)", forKey: "color")
print("\(color)")

}

将保存的颜色显示回 UIColor

textcolor = ud.object(forKey: "color")
//!!I don't know the color specification here
label.textColor = ・・・・・

最佳答案

UIColor 符合 NSSecureCoding,因此您可以编写 UserDefaults 的扩展

extension UserDefaults {
func color(forKey key: String) -> UIColor? {
guard let colorData = data(forKey: key) else { return nil }
if #available(iOS 11, *) {
return try? NSKeyedUnarchiver.unarchivedObject(ofClass: UIColor.self, from: colorData)
} else {
return NSKeyedUnarchiver.unarchiveObject(with: colorData) as? UIColor
}
}

func set(_ color: UIColor, forKey key: String) {
let data : Data
if #available(iOS 11, *) {
data = try! NSKeyedArchiver.archivedData(withRootObject: color, requiringSecureCoding: false)
} else {
data = NSKeyedArchiver.archivedData(withRootObject: color)
}
set(data, forKey: key)
}
}

try! 表达式不会崩溃,因为 color 参数是非可选的,并且 UIColor 符合 NSSecureCoding >。

<小时/>

旁注:

Anbu.Karthik 的评论建议采用相同的方法,但链接文章中的代码很麻烦,并且包含一些不好的做法。

关于ios - 我想将 String 转换为 UIColor,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57674973/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com