UIButton 当前颜色检查

UIButton current colour check

我想检查按钮的当前颜色,如果是蓝色我想执行某个操作。

但是我用这种方式比较过,总是失败。即使在故事板中背景颜色设置为系统蓝色。

如何查看颜色?

我做了什么:

    @IBAction func myBlueButton(_ sender: UIButton) {
    if sender.backgroundColor == .systemBlue{
        print("yeah its equal")
    }
}

作为一般规则,视图对象不应保存状态。

您可以从

中提取您的问题

“我想检查按钮的当前颜色,如果是蓝色我想执行某个操作”

收件人:

“我想检查视图对象的状态并根据该状态执行特定操作。”

不要那样做。

向您的模型添加一个条目,告诉您有关功能状态的信息。不是“按钮是蓝色的”,而是“我们处于编辑模式”(或者任何“按钮是蓝色的”对您的应用程序的业务逻辑意味着。)

(让您的业务逻辑依赖于应用程序的视觉状态是个坏主意。

假设您编写应用程序来检查按钮颜色并据此决定应用程序状态。一年后,您决定对您的应用进行整容,并更新按钮颜色以使用不同的颜色主题。现在您的活动按钮颜色是紫红色,非活动按钮是部分透明的黑色。您进行了更改,然后由于某些奇怪的原因,您的 API 调用不再有效。经过 waaaaayyyy 太多的挠头之后,您不好意思地意识到您的业务逻辑正在查看您的视图样式来确定状态。当您更改视图的样式时,它破坏了您的业务逻辑。)