在配置对象

时间:2017-08-13 16:29:32

标签: ios swift uibutton uicontrolstate

我经常看到UIControlState.normal使用,例如在titleColor对象上设置UIButton,将在所有控制状态中使用,UIButton. setTitleColor文档说:

  

通常,如果没有为状态指定属性,则默认为   使用正常值。如果没有设置正常值,那么   property默认为系统值。因此,至少,你   应该设置正常状态的值。

但我也发现使用UIControlState.init(),例如以下行:

UIButton.setTitleColor(UIColor, for: UIControlState())

想知道它有何不同,提前谢谢!

2 个答案:

答案 0 :(得分:23)

UIControlState.normal 是表示“正常”状态的特定控制状态。





UIControlState()是一个“空”控件状态,带有一些未记录的默认值。





恰好这两个都支持原始值 0 。因此,它们似乎都代表了“正常”状态。





但依靠这一点是不好的做法。默认值可能会更改。最好使用提供的具体,明确记录的值。





始终使用 UIControlState.normal 作为“正常”状态。永远不要使用 UIControlState(),因为它的值没有记录,并且无法保证它总是与 UIControlState.normal 具有相同的基础值。




答案 1 :(得分:1)

刚刚在控制台中找到,UIControlState().normal都相同,所以没有区别