Невозможно добавить пробел между меткой и ее границей - PullRequest
0 голосов
/ 11 мая 2018

У меня есть этикетка с прямоугольной рамкой. Я хочу добавить пробел между текстом метки и границей метки.
Я попытался выполнить следующие шаги: https://stackoverflow.com/a/40385630/9735046

myLabel.frame.size.width = myLabel.intrinsicContentSize.width + 10
myLabel.frame.size.height = myLabel.intrinsicContentSize.height + 10
myLabel.textAlignment = .center

Но это не добавило пробела между текстом моей метки и границей.
Как бы я добавил пробел?

Ответы [ 3 ]

0 голосов
/ 11 мая 2018

Проблема в viewDidLoad кадр еще не установлен, поэтому попробуйте это

override func viewDidLoad() {
    super.viewDidLoad()
    // Do any additional setup after loading the view, typically from a nib.



    lb.text = "dbjsjdhsjhdshjdshjdshdjs"

    lb.layer.borderColor = UIColor.red.cgColor

    lb.layer.borderWidth = 3

    lb.textAlignment = .center

    view.addSubview(lb)

    lb.sizeToFit()

    lb.center = view.center
}

override func viewDidLayoutSubviews() {
    super.viewDidLayoutSubviews()

    lb.frame.size.width = lb.intrinsicContentSize.width + 100

    lb.frame.size.height = lb.intrinsicContentSize.height + 100

    lb.center = view.center

}

//

enter image description here

0 голосов
/ 11 мая 2018

См. Это просто.Если у вас ширина метки больше, чем у текста, и вы используете выравнивание текста как Центр, тогда он будет работать так, как вы хотите, и текст будет в центре, с пробелом в начале и конце метки.Как показано ниже:

enter image description here

Если вы не хотите выравнивание текста по центру и хотите оставить выравнивание текста по левому краю, то же самое будет выглядеть ниже:

enter image description here

Так что теперь с выравниванием по левому краю и вам нужно пространство между границей и текстом, тогда вы должны добавить пробел, прежде чем фактическое значение текста начнется, как показано ниже:

    let strValue = "I want Space"
    label?.text = " \(strValue)"

И результат будет таким:

enter image description here

Так что вы можете увидеть разницу.

0 голосов
/ 11 мая 2018

Авто-макет, вероятно, отменяет изменение вашего размера. Попробуйте добавить ограничение размера к метке. Обратите внимание, что это проще в Storyboard, чем в коде.

...