如何保存UIColor以便每次在应用程序中使用?

问题描述 投票:-1回答:2

我创建了具有不同颜色选择的收集视图作为收集单元。现在,当用户选择一个特定的单元格时,该单元格中的cohoe必须保存以在其他地方使用。...

我尝试使用

Userdefaults.standard.set(UIColor, forket:"Default_Color")

但是Userdefaults不会保存UIColor。

swift uicollectionview uicolor
2个回答
0
投票

您应该在Userdefaults中将字符串另存为UIColoe的HexString。

为此,您应该使用此库,https://github.com/viccalexander/Chameleon

通过使用此库,您可以将hexString作为UIColor的字符串获取并将其存储在Userdefaults中。

并且当您想从Userdefaults中使用该颜色时,可以从Userdefaults中获取hexString作为String并通过使用此库在UIColor中进行转换。


0
投票

您可以尝试使用此示例。或者,您可以将字符串另存为UIColor的十六进制。

    let colArr = [
        "Default_Color": ["red": 255.0, "green": 0, "blue": 0, "alpha": 1.0]
    ]

    UserDefaults.standard.set(colArr, forKey: "colArr")


    let colArr_new = UserDefaults.standard.value(forKey: "colArr") as! [String: Any]
    let Default_Color = colArr_new["Default_Color"] as! [String: Any]


    let red = Default_Color["red"] as! CGFloat
    let green = Default_Color["green"] as! CGFloat
    let blue = Default_Color["blue"] as! CGFloat
    let alpha = Default_Color["alpha"] as! CGFloat

    let color = UIColor(red: red/255.0, green: green/255.0, blue: blue/255.0, alpha: alpha)

    print("\(red) \(green) \(blue) \(alpha) >>>\(color)")
© www.soinside.com 2019 - 2024. All rights reserved.