gpt4 book ai didi

ios - 背景颜色的全局变化

转载 作者:行者123 更新时间:2023-11-28 05:47:22 27 4
gpt4 key购买 nike

所以问题是我对背景颜色进行了全局更改。我为一个按钮编写了代码,该按钮通过 UserDefaults 中的一个键保存背景颜色,然后我在主屏幕的 viewDidLoad 中插入了 view.backgroundColor,但它正在改变仅在该屏幕上的颜色。如何在全局范围内更改它?

最佳答案

UIViewController 创建一个子类,它有一个背景颜色变化的通知观察器,并使您的 View Controller 成为它的子类。之后,将通知发布到用户默认变量的 didSet block 中。

class CustomBgColorViewController: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()

view.backgroundColor = UserPrefs.customBgColor

NotificationCenter.default.addObserver(self, selector: #selector(shouldChangeBgColor), name: .shouldChangeBgColor, object: nil)
}

@objc fileprivate func shouldChangeBgColor() {
view.backgroundColor = UserPrefs.customBgColor
}
}

extension Notification.Name {
static let shouldChangeBgColor = Notification.Name(rawValue: "shouldChangeBgColor")
}

struct UserPrefs {
static var customBgColor: UIColor! {
didSet {
[...]

NotificationCenter.default.post(name: .shouldChangeBgColor, object: nil)
}
}
}

关于ios - 背景颜色的全局变化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54157505/

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