Как остановить фоновое изображение UIButton от воздействия на его intrinsicContentSize? - PullRequest
0 голосов
/ 11 апреля 2020

У меня огромное изображение размером 1095x726 точек.

Я установил это изображение как фоновое изображение UIButton. Это привело к увеличению размера кнопки. Я заметил, что intrinsicContentSize кнопки равно размеру фонового изображения.

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

Размер кнопки должен быть таким, как если бы у нее не было фонового изображения. Фоновое изображение должно соответствовать размеру кнопки, а не наоборот.

Кто-нибудь может указать, как сделать intrinsicContentSize из UIButton не зависящим от его фонового изображения?

Ответы [ 2 ]

0 голосов
/ 12 апреля 2020

Я подкласс UIButton и преодолел intrinsicContentSize. Он не обрабатывает все случаи, но достаточно для моей цели.

class TitleFittingButton: UIButton {
    override var intrinsicContentSize: CGSize {
        var titleSize = titleLabel?.intrinsicContentSize ?? .zero
        titleSize.width += titleEdgeInsets.left + titleEdgeInsets.right
        titleSize.height += titleEdgeInsets.top + titleEdgeInsets.bottom
        return titleSize
    }
}
0 голосов
/ 11 апреля 2020

Вы установили какие-либо ограничения для своей кнопки UIB?

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

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