Как отключить смещение заголовка UIButton вправо при добавлении изображения на кнопку? - PullRequest
1 голос
/ 18 июня 2019

Я создал собственный класс UIButton для отображения изображения кнопки на правом краю экрана.

Код выглядит следующим образом -

class CutomButton: UIButton {    
    override init(frame: CGRect) {
        super.init(frame: frame)
        setup()
    }

    required init?(coder aDecoder: NSCoder) {
        super.init(coder: aDecoder)
        setup()
    }

    func setup() {
        imageView?.translatesAutoresizingMaskIntoConstraints = false
        imageView?.trailingAnchor.constraint(equalTo: trailingAnchor, constant: -8).isActive = true
        imageView?.centerYAnchor.constraint(equalTo: centerYAnchor).isActive = true
    }
}

Вышекод работает как положено.Однако заголовок кнопки перемещается вправо, как если бы imageView находился в исходном положении (слева от заголовка).

Может ли кто-нибудь указать, как можно разместить заголовок кнопки на ееисходное положение, как будто изображение кнопки нет?

1 Ответ

2 голосов
/ 18 июня 2019

По умолчанию класс UIButton управляет этим внутренне, но у вас есть несколько вариантов:

Простой режим: Изменить вставки ребер, определенные в UIButton: titleEdgeInsets и imageEdgeInsets.Посмотрите на другой ТАК предыдущий ответ, который достаточно похож, но вам просто нужно изменить его для своих нужд.

Расширенный (но более гибкий) режим: поскольку вы создаетеподкласс, вы могли бы вместо подкласса UIControl вместо UIButton.Поскольку UIButton является подклассом UIControl, сенсорные события по-прежнему регистрируются так же, как и UIButton, и вы можете переопределить isHighlighed / isSelected, чтобы управлять тем, как «настраиваемая кнопка» выглядит в затронутом состоянии.

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