简而言之,我做了类似按钮的“单选按钮”。按下按钮时,其背景设置为深绿色,其他设置为浅绿色。
但是,当我旋转设备(使用仿真器)时,颜色会重置为浅绿色-这是.xib文件中设置的原始颜色。
每个绿色的“按钮”都是一个UIControl。我用
设置颜色button.backgroundColor = unselectedColour
答案 0 :(得分:0)
因此,就像亚历山大建议的那样,我设法使用属性观察器使此工作正常进行。
像上面提到的,我有3个按钮。我还有一个枚举可帮助您记住已选择了哪个按钮(例如,无,button1,button2,button3)。我使用属性观察器来保持跟踪该枚举的变量,如下所示:
/** Remember the last trailer selection made. */
var lastSelection: MyEnum = .none {
willSet {
setButtonColours(selection: newValue)
}
didSet {
}
}
每个按钮的操作都会设置lastSelection变量,然后触发该变量。最后,我必须添加一些代码以确保重绘在方向更改后发生:
override func viewDidLayoutSubviews() {
setButtonColours(selection: lastSelection)
}
我不知道这是否是最好的解决方案(因为我是菜鸟),但是它有效!再次感谢亚历山大的帮助!