向由PaintCode代码创建的UIButton添加突出显示效果

时间:2019-03-12 00:30:05

标签: swift uibutton paint-code

我已经使用PaintCodes代码创建了一个按钮:

class AddIconView: OUIButton {
    override func draw(_ rect: CGRect) {
        AddIcon.draw(frame: rect)
   }
}

然后将其类添加到UIButton。问题是,触摸按钮后按钮不再突出显示,向其添加突出显示的最佳方法是什么? 例如此按钮:

@IBOutlet weak var addButton: AddIconView!

非常感谢您的提前帮助

编辑:

我为此创建了一个自定义类:

class OUIButton: UIButton {
override var isHighlighted: Bool {
    get {
        return super.isHighlighted
    }
    set {
        if newValue {
            backgroundColor = .green
        }
        else {
            backgroundColor = .blue
        }
        super.isHighlighted = newValue
    }
 }}

对于测试,我添加了蓝色和绿色。使用此代码,当我触摸按钮时,背景将变为并保持蓝色。 我希望它只有在被触摸时才更改,并在释放后恢复到正常状态,就像正常的UIbutton

1 个答案:

答案 0 :(得分:0)

已解决,以下是任何想要使用的人的代码:

class OUIButton: UIButton {
    override var isHighlighted: Bool {
        get {
            return super.isHighlighted
        }
        set {
            if newValue {
                    UIView.animate(withDuration: 0.25, delay: 0, options:.curveEaseIn , animations: {
                self.alpha = 0.5
            }, completion: nil)
        }
        else {
            UIView.animate(withDuration: 0.25, delay: 0, options:.curveEaseOut , animations: {
                self.alpha = 1
            }, completion: nil)
        }
        super.isHighlighted = newValue
    }
}}