UIButton 多个标签使用 UIControlStates

UIButton Multiple Labels Using UIControlStates

我知道使用 UIButton,我可以添加额外的 UILabel 作为子视图:

[myButton addSubview: myLabel];

并且(至少,使用默认标题标签)我可以在点击时设置其文本颜色:

[myButton setTitleColor:someColor forState:UIControlStateHighlighted]

我的问题是,如何为添加到 UIButton 的附加 UILabel 实现此功能(如果可能的话)?

在将其添加为子视图之前,您必须设置 myLabel 的文本颜色。

否则,您将不得不枚举按钮的子视图并更改每个添加标签的文本颜色。

更新:

您可以按如下方式更改按钮标题的字体:

myButton.titleLabel!.font = UIFont(name: "...", 10)

您可以按如下方式更改按钮的标题颜色:

colorsBtn.setTitleColor(UIColor.brownColor(), forState: UIControlState.Highlighted)

看来我的处理方式并不容易,但我意识到我可以为事件 UITouchDown 添加一个动作到 UIButton,并相应地更改标签动作。

子类化 UIButton 并在其中添加您的其他标签作为实例变量。然后覆盖 -setHighlighted-setSelected 以根据需要调整其他标签。 仅供参考 - 您调用 [myButton setTitleColor...],而不是 [myButton.titleLabel setTitleColor...]