我希望用户通过单击所需按钮来选择首选颜色,根据选择,它将是应用程序中所有页面的背景色。
给出的代码是我用来通过代码更改背景颜色的代码,如附件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的新手。
答案 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
}
}