【问题标题】:Highlight a button when Pressed In swift快速按下时突出显示按钮
【发布时间】:2018-07-30 12:09:26
【问题描述】:

我已经制作了奥特莱斯和动作。 我已将代码链接到 UI。

我想要一个按钮在按下时突出显示。这是我写的代码:

 @IBAction func buttonPressed(_ sender: UIButton) {
        sender.setTitleColor(UIColor(GL_GREEN), for: .highlighted)
}

【问题讨论】:

标签: swift colors highlight


【解决方案1】:

2021 年……

您只需将 ButtonType 设置为 .system,它会在按下时突出显示。

let button = UIButton(type: .system)

为了清楚起见,这是我制作的一个按钮:

lazy var myButton: UIButton = {
        let button = UIButton(type: .system)
        button.setTitle("Show More", for: .normal)
        button.setTitleColor(.systemBlue, for: .normal)
        button.titleLabel?.font = .systemFont(ofSize: 17, weight: .regular)
        button.layer.masksToBounds = true
        button.addTarget(self, action: #selector(buttonTapped), for: .touchUpInside)
        return button
}()
    
@objc fileprivate func buttonTapped() {
        //code for segue
}

【讨论】:

    【解决方案2】:

    您可以子类化 UIButton。创建一个新的 swift 文件并将其命名为您想要的任何名称,但在此示例中,我将其命名为 HighlightedButton。在您创建的新文件中添加以下代码。该类的名称与您创建的文件相同。

    import UIKit
    
    class HighlightedButton: UIButton {
    
        override var isHighlighted: Bool {
            didSet {
                backgroundColor = isHighlighted ? .red : .green
            }
        }
    }
    

    下一步是将 HighlightedButton 设置为按钮的类:

    在情节提要中选择您要更改的 UIButton。在右上角的身份检查器中,有一个名为“class”的字段,输入“HighlightedButton”并按 Enter。现在,您的按钮在突出显示时将变为红色,当您释放按钮时将变为绿色。

    您可以更改为您想要的任何颜色。

    【讨论】:

      【解决方案3】:

      你必须做两个动作,一个是“Touch down”和“Touch up inside”动作。更改两个动作的背景颜色,您将实现目标

      【讨论】:

        猜你喜欢
        • 2019-05-17
        • 2020-08-22
        • 2013-01-19
        • 2017-01-25
        • 1970-01-01
        • 2011-07-04
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多