我经常看到UIControlState.normal
使用,例如在titleColor
对象上设置UIButton
,将在所有控制状态中使用,UIButton. setTitleColor
文档说:
通常,如果没有为状态指定属性,则默认为 使用正常值。如果没有设置正常值,那么 property默认为系统值。因此,至少,你 应该设置正常状态的值。
但我也发现使用UIControlState.init()
,例如以下行:
UIButton.setTitleColor(UIColor, for: UIControlState())
想知道它有何不同,提前谢谢!
答案 0 :(得分:23)
UIControlState.normal
是表示“正常”状态的特定控制状态。
UIControlState()
是一个“空”控件状态,带有一些未记录的默认值。
恰好这两个都支持原始值 0
。因此,它们似乎都代表了“正常”状态。
但依靠这一点是不好的做法。默认值可能会更改。最好使用提供的具体,明确记录的值。


始终使用 UIControlState.normal
作为“正常”状态。永远不要使用 UIControlState()
,因为它的值没有记录,并且无法保证它总是与 UIControlState.normal
具有相同的基础值。
答案 1 :(得分:1)
刚刚在控制台中找到,UIControlState()
和.normal
都相同,所以没有区别