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

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

aButton.setTitle(title, for: .normal)

然而,最近我看到了这个

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

设置标题的方式正确吗?

【问题讨论】:

  • 是的,如果它没有显示任何错误,因为它可能在初始化时使用默认状态

标签: ios uibutton uikit


【解决方案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())
      

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

      【讨论】:

      • 我认为你最后的说法是不对的。
      猜你喜欢
      • 2015-06-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多