УИлабел Сизеофит неожиданно себя ведет

Я столкнулся с неожиданным поведением с моим UIlabel sizeToFit() метод. Теперь я попытался сделать numberOfLines = 0Я назвал событие LayoutIfNeed(), Но ни один из них не работает.

Я даже попробовал методы, приведенные в этом вопросе: выровнять текст по вертикали внутри UILabel

Но опять-таки никто не помог. У меня нет многих ограничений, я просто использую штифты с автоматическим изменением размера. Я даже попробовал это без ограничений или без автоматического изменения размера.

У меня есть эта метка в TableViewCell и CollectionReusableView. Звонить в awakeFromNib() просто не влияет.

Код UIcollectionReusableView:

override func awakeFromNib() {
    super.awakeFromNib()


    label.sizeToFit()

    label.numberOfLines = 0
    label.layer.shadowOffset = CGSize(width: 0, height: 0)
    label.layer.shadowOpacity = 3
    label.layer.shadowRadius = 8

}

сдерживает:

Код TableViewCell:

override func layoutSubviews() {
    super.layoutSubviews()

// this is the UIview on which the label is put on.
    contentView.layoutIfNeeded()

}


override func awakeFromNib() {
    super.awakeFromNib()
    // This is the label has the issue
    caption.sizeToFit()

}

Ограничения:

Кроме того, метка в текстовом представлении накладывается на другую метку, а ограничения стека:

вот пример:

Это просто не похоже на работу. Я полностью вне идеи.

Любая помощь с благодарностью.

1 ответ

Решение

Вам необходимо вызывать sizeToFit() после добавления текста в метку, а не до.

Другие вопросы по тегам