【发布时间】:2016-03-11 06:10:09
【问题描述】:
在 Swift 中有没有办法为所有状态更改 UIButton 的标题/标签?我正在将 UIButton 的标题设置为某些内容,但是当它未突出显示时,标签会更改为以前的内容。
谢谢
【问题讨论】:
-
请显示一些代码。 “如果没有为状态指定标题,则默认行为是使用与 UIControlStateNormal 状态关联的标题。”
在 Swift 中有没有办法为所有状态更改 UIButton 的标题/标签?我正在将 UIButton 的标题设置为某些内容,但是当它未突出显示时,标签会更改为以前的内容。
谢谢
【问题讨论】:
没有一种方法可以同时为所有状态设置标题,但是如果您从不为正常状态以外的状态设置标题,未设置的状态将默认为正常标题.
来自the docs
如果没有为状态指定标题,则默认行为是使用与 UIControlStateNormal 状态关联的标题。如果未设置 UIControlStateNormal 的值,则该属性默认为系统值。
所以打电话
button.setTitle("Button text", for:.normal)
没有为其他州设置标题。如果您需要为其他状态设置不同的标题,则每次更改按钮的标题时都需要重新设置它们。
【讨论】:
highlighted 指定一个。
setTitle 现在需要一个 OptionSet - 所以你需要传入一个空集。
现在的语法是:
button.setTitle("Button Text", for: [])
【讨论】:
.normal 在 Swift 3 中仍然可用,并且工作得很好。但是UIControlState 是一个OptionSet,所以传递[] 意味着一个空集。