首页 > 解决方案 > Swift 4 从应用程序中咨询的背景颜色保存

问题描述

我希望你成为应用程序中选定的背景颜色。

我做到了...背景颜色已更改,但未保存。

 @IBAction func ButtonColor(_ sender: UIButton) {


    let colorTag = sender.tag

        if  (colorTag == 1){
        self.view.backgroundColor = #colorLiteral(red: 0.8156862745, green: 0.9725490196, blue: 0.9215686275, alpha: 1)
        print ("colorTag 1")

    }else if (colorTag == 2){
        self.view.backgroundColor = #colorLiteral(red: 0.8156862745, green: 0.8, blue: 0.9215686275, alpha: 1)
        print ("colorTag 2")
    }else if (colorTag == 3){
        self.view.backgroundColor = #colorLiteral(red: 0.3254901961, green: 0.9019607843, blue: 0.9803921569, alpha: 1)
        print ("colorTag 3")
    }else if (colorTag == 4){
        self.view.backgroundColor = #colorLiteral(red: 0.9999960065, green: 1, blue: 1, alpha: 1)
        print ("colorTag 4")
        } else if (colorTag == 0){
        self.view.backgroundColor = #colorLiteral(red: 1.0, green: 1.0, blue: 1.0, alpha: 1.0)
    }

}

现在我已经不知道了。我要做的是保存所选颜色。

标签: iosswift

解决方案


首先创建任何颜色数组

let arr = [#colorLiteral(red: 1.0, green: 1.0, blue: 1.0, alpha: 1.0),
           #colorLiteral(red: 0.8156862745, green: 0.9725490196, blue: 0.9215686275, alpha: 1),
           #colorLiteral(red: 0.8156862745, green: 0.8, blue: 0.9215686275, alpha: 1),
           #colorLiteral(red: 0.3254901961, green: 0.9019607843, blue: 0.9803921569 alpha: 1),
           #colorLiteral(red: 0.9999960065, green: 1, blue: 1, alpha: 1)]

@IBAction func ButtonColor(_ sender: UIButton) { 
    self.view.backgroundColor = arr[sender.tag]
    UserDefaults.standard.set(arr[sender.tag], forKey: "SavedColor")
}

当你在里面再次打开应用程序时viewDidLoad

self.view.backgroundColor = UserDefaults.standard.color(forKey: "SavedColor") ?? UIColor.red

有了这个https://stackoverflow.com/a/30576832/5820010


推荐阅读