Размер содержимого UILabel не равен ширине привязки

#swift #autolayout #uikit #constraints #uilabel

Вопрос:

Я ограничил использование UILabel постоянной шириной NSLayoutConstraint , и widthAnchor проблема в том, contentSize UILabel что значение не равно widthAnchor , а в некоторых случаях больше, чем я указал.

P.S. Я новичок в разработке iOS, приношу извинения, если ответ очевиден.

Изменить: Ширина UILabel была ограничена значением десятичной запятой, что, по словам одного пользователя на другом форуме, привело к округлению UILabel до следующего кратного 0,5, что привело к сбою всей системы. Работа для меня заключалась в том, чтобы увеличить() ширину моей метки UIL. Спасибо всем, кто помогал.

Комментарии:

1. пробовать label.setContentCompressionResistancePriority(UILayoutPriority(rawValue: 1000), for: .horizontal)

2. @MohmmadS, это не сработало для меня…

3. Я обновил, что попробуйте еще раз, также установите приоритет для ширины 500 или 750

4. @MohmmadS попробовал это, но все еще не работает

5. Не могли бы вы добавить более подробную информацию, полное описание ограничений ?

Ответ №1:

Вы можете использовать приоритет сопротивления сжатию здесь,

  1. Установите более низкий приоритет для WidthAnchor
  2. Установите приоритет сопротивления сжатию содержимого, например, на 1000 ( выше, чем привязка ширины).

проверьте код ниже.

 label.setContentCompressionResistancePriority(UILayoutPriority(rawValue: 1000), for: .horizontal)
 

Эта статья может быть полезна в вашем случае.

Комментарии:

1. к сожалению, это также не работает для меня…

Ответ №2:

Ширина UILabel была ограничена значением десятичной запятой, что, по словам одного пользователя на другом форуме, привело к округлению UILabel до следующего кратного 0,5, что привело к сбою всей системы. Работа для меня заключалась в том, чтобы увеличить() ширину моей метки UIL. Спасибо всем, кто помогал.