2017-08-13 127 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是相等的,所以沒有區別