Как настроить высоту Dynami c для UILabel в Swift 5? - PullRequest
0 голосов
/ 11 февраля 2020

Я пытаюсь настроить UILabel в контроллере представления с динамической высотой c, чтобы он соответствовал тексту.

Я пробовал различные примеры, доступные при переполнении стека, но пока безрезультатно.

существует ли какой-либо другой указанный c метод для Swift 5, чтобы сделать динамику высоты UILabel c?

Ограничения пользовательского интерфейса

View Controller

Ответы [ 5 ]

3 голосов
/ 11 февраля 2020

В ваших UIConstraints я вижу ограничение по высоте = 134, удалите ограничение по высоте, чтобы динамически регулировать высоту вашего ярлыка.

Прагматически вы можете достичь этого с помощью кода ниже

let myLabel = UILabel()
        self.view.addSubview(myLabel)
        myLabel.translatesAutoresizingMaskIntoConstraints = false
        NSLayoutConstraint.activate([myLabel.topAnchor.constraint(equalTo: self.view.topAnchor, constant: 100),
        myLabel.leadingAnchor.constraint(equalTo: self.view.leadingAnchor, constant: 30),
        myLabel.trailingAnchor.constraint(equalTo: self.view.trailingAnchor, constant: -30)])
        myLabel.numberOfLines = 0
        myLabel.backgroundColor = .yellow
        myLabel.text = "Lorem ipsum dolor sit er elit lamet, consectetaur cillium adipisicing pecu, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. "
2 голосов
/ 11 февраля 2020

1) установите верхние / ведущие / конечные ограничения метки на superview / Safe Area. 2) установите numberOfLines = 0 в инспекторе атрибутов для метки в раскадровке.

1 голос
/ 11 февраля 2020

Просто удалите HeightConstraint метки из раскадровки и добавьте 0 к числу строк, которые ваша метка получит в тексте и установит в соответствии с содержимым.

0 голосов
/ 14 февраля 2020

Укажите numberOfLines = 0, а в ограничениях высоты надписи укажите как больше или равно нулю.

0 голосов
/ 11 февраля 2020

Укажите ограничения UILabel, leading, trailing и top. Не давайте bottom ограничений. Если вам нужно задать ограничения bottom, не задавайте ограничение top.

Также установите numberOfLines = 0

class ViewController: UIViewController {

    @IBOutlet weak var yourLabel : UILabel!
    override func viewDidLoad() {
        super.viewDidLoad()
        yourLabel.numberOfLines = 0
        // Do any additional setup after loading the view.
    }
}
...