Выравнивание текста по нескольким строкам - PullRequest
5 голосов
/ 14 июня 2011

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

Сейчас я использую свойство

[question1Label setContentMode: UIViewContentModeTopLeft];

Но это не работает

Спасибо

Ответы [ 2 ]

6 голосов
/ 14 июня 2011

Я заметил, что contentMode свойство UILabel не влияет на выравнивание текста.Используйте свойство textAlignment .

label.textAlignment = UITextAlignmentLeft; 

Редактировать: Это выровняет текст по левому центру.Чтобы отобразить текст сверху-слева, вам нужно найти высоту текста, используя sizeWithFont: метод NSString . См. Этот пост , чтобы узнать, как это сделать.

В качестве альтернативы вы можете использовать UITextField, подкласс UIControl, который наследует UIControl's contentVerticalAlignment собственность.

textField.contentVerticalAlignment = UIControlContentVerticalAlignmentTop;

Вы можете использовать это свойство для выравнивания текста сверху.Вы можете отключить редактирование текста пользователем, используя свойство userInteractionEnabled.

0 голосов
/ 02 марта 2016

Принятый ответ больше не работал для меня, так как UITextAlignmentLeft устарел.

Следующее прекрасно работает!

...