iOS (Swift): затемнение кнопки UIB при нажатии - PullRequest
0 голосов
/ 02 июля 2018

У меня есть UIButton подкласс, который генерируется следующим образом:

class MoreOptionsButton: UIButton {

    override func draw(_ rect: CGRect) {

        let path = UIBezierPath(ovalIn: rect)
        UIColor.red.setFill()
        path.fill()

        let r = CGRect(x: rect.width * 0.5 - rect.width * 0.15 * 0.5, y: rect.height * 0.5 - rect.height * 0.15 * 0.5, width: rect.width * 0.15, height: rect.height * 0.15)
        var circlePath = UIBezierPath(ovalIn: r)
        UIColor.white.setFill()
        circlePath.fill()

        circlePath = UIBezierPath(ovalIn: r.offsetBy(dx: -rect.width / 4.0, dy: 0.0))
        UIColor.white.setFill()
        circlePath.fill()

        circlePath = UIBezierPath(ovalIn: r.offsetBy(dx: rect.width / 4.0, dy: 0.0))
        UIColor.white.setFill()
        circlePath.fill()

    }

}

и выглядит так:

enter image description here

Однако, когда я нажимаю на эту кнопку в симуляторе, она автоматически не тускнеет, как обычная кнопка типа System. Как мне добиться этого эффекта, пожалуйста?

Ответы [ 2 ]

0 голосов
/ 02 июля 2018

есть два состояния выбранной кнопки и невыбранное состояние, вы можете назначать изображения для обоих состояний.

0 голосов
/ 02 июля 2018

Добавьте следующий код в свой пользовательский класс UIButton:

override var isHighlighted: Bool {
    didSet {
        alpha = isHighlighted ? 0.4 : 1
    }
}

enter image description here

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