什么是配置对象时`UIControlState()`和`UIControlState.normal`之间的区别

Aam*_*irR 12 uibutton ios uicontrolstate swift

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

通常,如果未为状态指定属性,则默认使用正常值.如果未设置正常值,则属性默认为系统值.因此,您至少应该设置正常状态的值.

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

UIButton.setTitleColor(UIColor, for: UIControlState())
Run Code Online (Sandbox Code Playgroud)

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

rma*_*ddy 24

UIControlState.normal 是表示"正常"状态的特定控制状态.

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

碰巧的是,这两个都支持原始值0.所以它们似乎都代表了"正常"状态.

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

始终UIControlState.normal用于"正常"状态.永远不要使用,UIControlState()因为它的价值没有记录,并且不能保证它总是具有相同的潜在价值UIControlState.normal.

  • 我不明白为什么人们更喜欢“UIControl.State()”而不是只写“.normal”。 (2认同)