Добавить левый и правый отступ в UIButton - PullRequest
1 голос
/ 31 марта 2020

Я хотел бы добавить левый и правый отступ к кнопкам, которые, как я вижу, имеют свойство titleEdgeInsets. Вот мой код:

import UIKit

class QuickPromptButton: UIButton {

    var userFacingValue: String?
    var answerValue: String?

    override init(frame: CGRect) {
        super.init(frame: frame)
        layer.borderColor = UIColor.primaryColor.cgColor
        layer.borderWidth = 1
        layer.cornerRadius = 15
        setTitleColor(.primaryColor, for: .normal)
        titleEdgeInsets = .init(top: 0, left: -10, bottom: 0, right: 10)
        contentVerticalAlignment = .center
        contentHorizontalAlignment = .center

    }

    required init?(coder: NSCoder) {
        fatalError("init(coder:) has not been implemented")
    }
}

Однако вот как они выглядят сейчас:

enter image description here

Проблема в том, что текст выходит за границы. Есть идеи почему?

Вот что я получаю, используя 10 слева и справа:

enter image description here

1 Ответ

2 голосов
/ 31 марта 2020
override var intrinsicContentSize: CGSize {
    let originalSize = super.intrinsicContentSize
    let size = CGSize(width: originalSize.width + 20, height: originalSize.height)
    return size
}

Переопределение intrinsicContentSize и добавление итогового отступа поверх текущей ширины закончились для меня работой, хотя я не уверен, что это правильный подход.

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