在UIButton中,`setTitle(_, for:)`和`setTitleColor(_, for:)`方法的`for`参数用于指定某种状态下按钮的标题和标题颜色。

6 min read

这是因为UIButton的状态可能会随着用户的交互而改变,例如,当用户点击按钮时,按钮的状态就会变为highlightedfor参数是一个UIControl.State类型的值,常见的值包括:

  • .normal:按钮的正常状态,没有任何用户交互时的状态。
  • .highlighted:当用户点击按钮,按钮就会进入这个状态。
  • .disabled:按钮被禁用时的状态,此时用户无法与之交互。
  • .selected:按钮被选中时的状态,这通常用在切换按钮等需要记住其状态的场景。

例如:

swift
let button = UIButton()

// 设置正常状态下的标题和颜色
button.setTitle("Normal", for: .normal)
button.setTitleColor(UIColor.black, for: .normal)

// 设置高亮状态下的标题和颜色
button.setTitle("Highlighted", for: .highlighted)
button.setTitleColor(UIColor.red, for: .highlighted)

// 设置禁用状态下的标题和颜色
button.setTitle("Disabled", for: .disabled)
button.setTitleColor(UIColor.gray, for: .disabled)

// 设置选中状态下的标题和颜色
button.setTitle("Selected", for: .selected)
button.setTitleColor(UIColor.blue, for: .selected)

在这个例子中,当按钮的状态发生改变时,标题和颜色也会相应地改变。

如果没有为某种状态设置标题或标题颜色,则按钮会默认使用正常状态下的标题和颜色。如需设置其他状态下的样式,就需要使用对应的for参数值来指定。