如何将用户选择的颜色设置为整个IOS应用程序的背景颜色?

时间:2019-06-15 23:08:04

标签: ios swift

我希望用户通过单击所需按钮来选择首选颜色,根据选择,它将是应用程序中所有页面的背景色。

给出的代码是我用来通过代码更改背景颜色的代码,如附件Screenshot of page sample所示。但是,它只是临时更改,当我移至另一页并返回时不会保存。

ColorViewController类:UIViewController {

@IBOutlet weak var redBtn: UIButton!

@IBOutlet weak var blueBtn: UIButton!


@IBAction func changeToRed(_ sender: UIButton) {
    self.view.backgroundColor = UIColor.green
}
@IBAction func changeToBlue(_ sender: UIButton) {
     self.view.backgroundColor = UIColor.cyan
}

如果您还知道如何为注册用户保存此颜色(因此,每次用户登录时,所选背景将保持原样,而不是重置为默认值),那就太好了。请告知您是否知道解决方案,我是Swift的新手。

1 个答案:

答案 0 :(得分:0)

要保存用户的颜色选择,可以使用UserDefaults,这将使您可以在内存中存储小尺寸的信息(例如颜色首选项)。因此,您可以使用以下内容:

UserDefaults.standard.set(UIColor.red , forKey: "themePreferenceKey")

这会将 Red 选择存储在内存中,以后可以通过键themePreferenceKey进行访问。

要根据用户保存的选择更改视图/按钮的背景颜色,每当出现视图时,您都必须获取themePreferenceKey的值,并相应地更改颜色。这可以在viewDidAppear方法中实现。如:

override func viewDidAppear(_ animated: Bool) {
   if let preferredColor = UserDefaults.standard.object(forKey: "themePreferenceKey") as? UIColor {
      self.view.backgroundColor = preferredColor
  }
}