您可以使用backgroundColor 作为条件来检查您应该选择下一个。
使用 backgroundColor 属性的方法
@IBAction func background_toggle(_ sender: UIButton) {
if self.view.backgroundColor == .white {
self.view.backgroundColor = .black
} else {
self.view.backgroundColor = .white
}
}
换句话说:如果backgroundColor是.white,那么设置它.black
否则,设置为.white
提示:
由于backgroundColor 是UIColor,Swift 会推断类型,因此您可以在分配时输入.white 或.black,而无需指定UIColor.white 或UIColor.black。
您可以拥有像Bool、UIColor 或Enum 这样的状态变量。然后你比较那个而不是视图的backgroundColor。
使用 Bool 变量的方法
var isWhite = true
@objc func handleOpenTermsAndConditions() {
if self.isWhite {
self.isWhite = false
self.view.backgroundColor = .black
} else {
self.isWhite = true
self.view.backgroundColor = .white
}
}
使用 UIColor 变量的方法
var currentBackgroundColor : UIColor = .white
@objc func handleOpenTermsAndConditions() {
if currentBackgroundColor == .white {
self.currentBackgroundColor = .black
self.view.backgroundColor = .black
} else {
self.currentBackgroundColor = .white
self.view.backgroundColor = .white
}
}
使用枚举状态的方法
如果您想限制颜色,您可以创建具有可用颜色的Enum。我认为将它与一些像.white 一样简单的逻辑一起使用是矫枉过正的。 .black.
第 1 步:创建 enum。
enum AvailableColor {
case white
case black
func currentUIColor() -> UIColor {
switch self {
case .white:
return UIColor.white
case .black:
return UIColor.black
}
}
}
第 2 步:实例化一个状态变量并使用 enum 逻辑
var currentColorState : AvailableColor = .white
@objc func handleOpenTermsAndConditions() {
if currentColorState == .white {
currentColorState = .black
} else {
currentColorState = .white
}
self.view.backgroundColor = currentColorState.currentUIColor()
}