配置对象时,`UIControlState()` 和 `UIControlState.normal` 有什么区别
Whats the difference between `UIControlState()` and `UIControlState.normal` when configuring an object
我经常看到 UIControlState.normal
被使用,例如在 UIButton
对象上设置 titleColor
将在所有控制状态中使用,如 UIButton. setTitleColor
文档说:
In general, if a property is not specified for a state, the default is
to use the normal value. If the normal value is not set, then the
property defaults to a system value. Therefore, at a minimum, you
should set the value for the normal state.
但我也发现 UIControlState.init()
被使用,例如以下行:
UIButton.setTitleColor(UIColor, for: UIControlState())
想知道它有何不同,提前致谢!
刚刚在console中发现,UIControlState()
和.normal
是相等的,所以没有区别
UIControlState.normal
是代表"normal"状态的具体控制状态。
UIControlState()
是一个 "empty" 控制状态,带有一些未记录的默认值。
碰巧这两个都由 0
的原始值支持。所以看起来两者都代表了"normal"状态。
但是依赖这个是不好的做法。默认值可能会更改。最好使用提供的具体的、明确记录的值。
始终使用 UIControlState.normal
作为 "normal" 状态。切勿使用 UIControlState()
,因为它的值未记录并且无法保证它始终具有与 UIControlState.normal
.
相同的基础值
我经常看到 UIControlState.normal
被使用,例如在 UIButton
对象上设置 titleColor
将在所有控制状态中使用,如 UIButton. setTitleColor
文档说:
In general, if a property is not specified for a state, the default is to use the normal value. If the normal value is not set, then the property defaults to a system value. Therefore, at a minimum, you should set the value for the normal state.
但我也发现 UIControlState.init()
被使用,例如以下行:
UIButton.setTitleColor(UIColor, for: UIControlState())
想知道它有何不同,提前致谢!
刚刚在console中发现,UIControlState()
和.normal
是相等的,所以没有区别
UIControlState.normal
是代表"normal"状态的具体控制状态。
UIControlState()
是一个 "empty" 控制状态,带有一些未记录的默认值。
碰巧这两个都由 0
的原始值支持。所以看起来两者都代表了"normal"状态。
但是依赖这个是不好的做法。默认值可能会更改。最好使用提供的具体的、明确记录的值。
始终使用 UIControlState.normal
作为 "normal" 状态。切勿使用 UIControlState()
,因为它的值未记录并且无法保证它始终具有与 UIControlState.normal
.