Как мне установить стандартную реакцию кнопки каждый раз, когда пользовательская кнопка нажимается? - PullRequest
0 голосов
/ 08 мая 2020

Я создал настраиваемую кнопку, и мне бы хотелось, чтобы ее фон слегка изменялся при каждом нажатии (в любом месте приложения).

Я знаю, как сделать это в каждом контроллере представления с помощью #selector(self.cardPressed(sender:)), for: .touchDown, но я хочу иметь возможность установить это в моем классе CustomButton, чтобы мне не нужно было вызывать его снова.

Я попытался использовать didSet в классе CustomButton, но мне удалось переопределить только isHighlighted и я не мог понять, как переопределить переменную, которая будет выглядеть примерно как isNoLongerHighlighted.

override var isHighlighted: Bool {
    didSet {
        backgroundColor = .red
    }
}

1 Ответ

1 голос
/ 08 мая 2020

Swift 5.2

import UIKit

class CustomButton: UIButton {

    override func awakeFromNib() {
        super.awakeFromNib()
        // Set the unselected background color
        backgroundColor = .red
    }

    override var isHighlighted: Bool {
        didSet {
            backgroundColor = isHighlighted ? .green : .red
        } 
    }
}

enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...