Есть несколько частей для UILabel
, которые делают это возможным, но сначала вы должны знать, хотите ли вы обрезать строку или уменьшить размер шрифта, чтобы он поместился в прямоугольнике.
В обоих случаях вы захотите установить для свойства UILabel
numberOfLines
значение 0
, позволяя этикетке оборачиваться столько раз, сколько необходимо. Затем вы захотите установить frame
из UILabel
в соответствии с прямоугольником, который вы хотите разместить. Оттуда вы выбираете один из двух путей:
- Усечение : установите для свойства
lineBreakMode
значение UILineBreakModeClip
, UILineBreakModeHeadTruncation
, UILineBreakModeTailTruncation
или UILineBreakModeMiddleTruncation
в зависимости от требуемого режима усечения.
- Изменение размера : установите для
lineBreakMode
либо UILineBreakModeWordWrap
, либо `UILineBreakModeCharacterWrap 'в зависимости от ваших предпочтений. Затем вам нужно будет ввести цикл, чтобы определить правильный размер шрифта. Начните с разумного размера шрифта (например, 12) и:
- Установите
font
свойство UILabel
с UIFont
, который соответствует этому размеру
- Звоните
- (void) sizeToFit
для UILabel
.
- Проверьте
frame
для UILabel
:
- Если рамка будет вписываться в нужные вам рамки, все готово
- Если кадр все еще большой, уменьшите размер шрифта и повторите цикл
Для последнего варианта вам нужно убедиться, что вы не сжимаете текст в забвение, поэтому вы захотите установить минимальный размер шрифта для размера шрифта.
Более подробную информацию можно получить из документации UILabel и UIFont .