UIButton setTitle:forState: 使用 UIConrolState() 作为参数

Posted

技术标签:

【中文标题】UIButton setTitle:forState: 使用 UIConrolState() 作为参数【英文标题】:UIButton setTitle:forState: use UIConrolState() as parameter 【发布时间】:2017-02-28 14:40:16 【问题描述】:

我总是将 UIButton 的标题设置如下

aButton.setTitle(title, for: .normal)

然而,最近我看到了这个

aButton.setTitle(title, for: UIControlState())

设置标题的方式正确吗?

【问题讨论】:

是的,如果它没有显示任何错误,因为它可能在初始化时使用默认状态 【参考方案1】:

同样合法且相同:

aButton.setTitle(title, for: [])

原因是.normal零选项。

专家补充:在 Swift 3 的准备阶段,.normal 被废除,[]UIControlState()唯一指定方式零选项。这是因为一条规则说,Objective-C 选项集的零选项根本没有按名称导入到 Swift 中。然而,该规则的这种一揽子应用(通常仍然存在)引起了巨大的混乱和抱怨,.normal 被大众需求带回来了。

【讨论】:

【参考方案2】:

两个语句的结果相同。 aButton.setTitle(title, for: .normal) 是设置按钮标题的“常规方式”...

【讨论】:

【参考方案3】:

两者的区别很简单:

aButton.setTitle(title, for: .normal) 

仅为正常状态设置文本,您可以选择为其他控制状态设置一些不同的文本为selected,重点,突出

但使用

aButton.setTitle(title, for: UIControlState())

是不同的东西 只要它不抛出任何错误

【讨论】:

我认为你最后的说法是不对的。

以上是关于UIButton setTitle:forState: 使用 UIConrolState() 作为参数的主要内容,如果未能解决你的问题,请参考以下文章

为啥 Swift4 会强制转换 UIButton 数组!到 [UIButton?] 类型?

UIButton:根据titleLabel Text计算UIButton的高度

我们在swiftui中作为 UIButton(Sender: UIButton) 有啥? [关闭]

UIButton的使用

如何在 UIButton 的右边缘对齐 UIButton 图像

UIButton