15

我通常看到UIControlState.normal使用,例如在将在所有控制状态之间使用titleColorUIButton对象上设置 a,如UIButton. setTitleColor文档所述:

一般来说,如果没有为状态指定属性,则默认使用正常值。如果未设置正常值,则该属性默认为系统值。因此,您至少应该设置正常状态的值。

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

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

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

4

2 回答 2

30

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

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

碰巧这两个都以0. 所以看起来两者都代表“正常”状态。

但是依赖这个是不好的做法。默认值可能会更改。使用提供的具体的、明确记录的值要好得多。

始终UIControlState.normal用于“正常”状态。永远不要使用UIControlState(),因为它的价值是无证的,并且不能保证它总是具有与UIControlState.normal.

于 2017-08-13T16:33:00.927 回答
2

刚刚在console中找到,两者UIControlState().normal相等,所以没有区别

于 2017-08-13T16:31:57.067 回答