Добавьте эффект выделения в UIButton, созданный кодом PaintCode - PullRequest
0 голосов
/ 12 марта 2019

Я сделал кнопку с помощью кода PaintCodes:

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

Затем я добавляю его класс в UIButton. Проблема в том, что кнопка больше не подсвечивается после прикосновения к ней, как лучше всего выделить ее? например для этой кнопки:

@IBOutlet weak var addButton: AddIconView!

Большое спасибо за вашу помощь заранее

Edit:

Я создал собственный класс для него:

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

Для теста я добавил синий и зеленый цвета. С этим кодом, когда я касаюсь кнопки, фон становится и остается синим. Я хочу, чтобы он изменялся только при прикосновении к нему и после отпускания возвращается в нормальное состояние, точно так же, как и обычная кнопка UI

1 Ответ

0 голосов
/ 12 марта 2019

Решено, вот код для тех, кто хочет использовать:

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
    }
}}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...