Как я могу изменить размер UIView на количество UILabels и изменить размер UILabels, чтобы соответствовать тексту? - PullRequest
0 голосов
/ 27 декабря 2011

У меня есть UIView, который должен содержать UILabel, и эти UILabel не фиксируются, если UILabel равен nil, я не отображаю его, а если нет, я должен изменить размер UILabel, чтобы он соответствовал тексту (они могут быть 2 ligne ) и поместите его под другой UILabel, и после того, как я должен изменить размер контейнера UIView на сумму этой UILabel. это снимок экрана, который я хочу сделать программно:

enter image description here

Ответы [ 4 ]

0 голосов
/ 27 декабря 2011

Если вы хотите сохранить одинаковый размер шрифта, вы можете рассчитать размер кадра для метки во время выполнения в зависимости от длины текста. См. Здесь

0 голосов
/ 27 декабря 2011

UILabels может вместить большие объемы текста, автоматически уменьшая шрифт (см. Значение минимального размера шрифта в Интерфейсном Разработчике).Вместо меток я бы использовал UITextViews.Они помещают большие объемы текста, позволяя пользователю прокручивать.Чтобы сделать их скрытыми, используйте изменение скрытого атрибута селектора UITextViews.Поскольку UITextViews никогда не изменится в размере, вы можете легко рассчитать, насколько уменьшить высоту контейнера UIView для каждого UITextView.Надеюсь, это поможет!

0 голосов
/ 27 декабря 2011

Я думаю, вам нужно посчитать высоту надписей (точнее, сложение от исходной высоты) одну за другой.Конечно, вы должны делать это систематически, имея все метки в массиве.

Вы можете использовать методы [NSString sizeWithFont:] (есть несколько с похожими именами) для вычисления высоты.

http://developer.apple.com/library/ios/#documentation/UIKit/Reference/NSString_UIKit_Additions/Reference/Reference.html

0 голосов
/ 27 декабря 2011

Вам необходимо использовать следующие два свойства метки-

  1. lineBreakMode
  2. numberOfLine

когда вы используете оба эти свойства, вы достигнете того, что хотите.

...