ios - 为什么当我点击它们时,我的按钮的文本颜色没有改变?

标签 ios swift uibutton

我想在每次用户选择一个按钮时将我的 UIButton 的文本颜色更改为 .orange 以显示选择了哪个按钮。如果选择了另一个按钮,它会将颜色改回 .white。我尝试使用下面的代码对按钮进行子类化,但没有任何改变。使用 Storyboard并在检查器中更改颜色属性也不起作用。我错过了什么?

class HighlightedButton: UIButton {

override var isHighlighted: Bool {
    didSet {
        backgroundColor = isHighlighted ? .orange : UIColor(red: 44/255, green: 62/255, blue: 80/255, alpha: 1.0)
    }
}

override var isSelected: Bool {
    didSet {
        titleLabel?.textColor = isSelected ? .orange : .white
    }
}

最佳答案

您可以简单地为 stackView 中的所有 buttons 创建一个 Outlet Collection

添加一个@IBAction 并将所有按钮 连接到它。在此方法中,设置点击按钮选择。并根据选择更改 Outlet Collection 中所有 buttonstextColor,即

@IBOutlet var buttons: [UIButton]!

@IBAction func onTapButton(_ sender: UIButton) {
    buttons.forEach {
        $0.isSelected = ($0 == sender)
        $0.setTitleColor((sender.isSelected) ? .orange : .white, for: .normal)
    }
}

关于ios - 为什么当我点击它们时,我的按钮的文本颜色没有改变?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56835065/

相关文章:

ios - ARC 并在编译时不指定类就向对象发送消息

ios - 如何在长按 UITableViewCell 时 swift 调用另一个 Controller ?

ios - 在 iOS 中获取按钮的颜色

ios - 如何在二维图像中的不规则形状上应用纹理?

swift - 最常出现的Realm

ios - 在 segControl & bars 上自定义 UIButton 或 UIBarButtonItem 的背景

ios - tableviewcell重复uibuttons

iphone - UIImagePickerController 相机不在照片库中保存照片

iphone - 获取所有已安装应用程序的图标列表

ios - 删除链接到锻炼的所有数据样本