2017-08-13 91 views
3

我通常所见使用UIControlState.normal的对象,例如,将所有的控制状态之间可以使用一个UIButton对象上设置一个titleColor,作为UIButton. setTitleColor UIControlState()`和`UIControlState.normal`之间`的差docs says:请告诉我配置时

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

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

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

想知道它是如何不同,在此先感谢!

回答

8

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

UIControlState()是一个“空”控制状态,有一些未公开的默认值。

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

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

对于“正常”状态始终使用UIControlState.normal。千万不要使用UIControlState(),因为它的价值是无证的,并且不能保证它总是会有与UIControlState.normal相同的基础价值。

0

在控制台刚刚发现,既UIControlState().normal是相等的,所以没有区别