【发布时间】:2017-02-28 14:40:16
【问题描述】:
我总是将 UIButton 的标题设置如下
aButton.setTitle(title, for: .normal)
然而,最近我看到了这个
aButton.setTitle(title, for: UIControlState())
设置标题的方式正确吗?
【问题讨论】:
-
是的,如果它没有显示任何错误,因为它可能在初始化时使用默认状态
我总是将 UIButton 的标题设置如下
aButton.setTitle(title, for: .normal)
然而,最近我看到了这个
aButton.setTitle(title, for: UIControlState())
设置标题的方式正确吗?
【问题讨论】:
同样合法且相同:
aButton.setTitle(title, for: [])
原因是.normal是零选项。
专家补充:在 Swift 3 的准备阶段,.normal 被废除,[] 或 UIControlState() 是唯一指定方式零选项。这是因为一条规则说,Objective-C 选项集的零选项根本没有按名称导入到 Swift 中。然而,该规则的这种一揽子应用(通常仍然存在)引起了巨大的混乱和抱怨,.normal 被大众需求带回来了。
【讨论】:
两个语句的结果相同。 aButton.setTitle(title, for: .normal) 是设置按钮标题的“常规方式”...
【讨论】:
两者的区别很简单:
aButton.setTitle(title, for: .normal)
仅为正常状态设置文本,您可以选择为其他控制状态设置一些不同的文本为selected,重点,突出
但使用
aButton.setTitle(title, for: UIControlState())
是不同的东西 只要它不抛出任何错误。
【讨论】: