Элегантный способ разрешить выравнивание текста UILabel?

58
6

Я разрабатываю приложение в iOS 6 и использую Xcode 4.5.2.

У меня есть простой UIView, который содержит некоторый текст в соответствии с локализуемой строкой. Ну, в соответствии с отображаемым языком число строк текста меняется. Например, на английском языке есть две строки, но на турецком языке требуется всего одна строка.

Я также должен центрировать выравнивание текста. Ну, сейчас я могу это сделать, но я использую два разных UILabel, и я установил их текст вручную. Таким образом, он не работает, если я изменяю отображаемый язык текста Simple image

Так,

1- Каков наилучший способ справиться с такой проблемой выравнивания?

2- Предположим, что я использую UILabel, хорошо, как я могу сделать новую строку, чтобы иметь выход, как показано на рис. Ни один из режимов прерывания линии не работает. Тот же вопрос, если я использую UITextView?

заранее спасибо

спросил(а) 2013-01-21T16:16:00+04:00 7 лет, 9 месяцев назад
1
Решение
99

Сделайте это

Установите номер строки в 0. Сделайте свой центр выравнивания текста. Вставьте символ \n в строку, где вы хотите разбить строку. Не забудьте установить ширину вашего UILabel.

По умолчанию, когда текст достигает ширины lablel, он переходит к следующей строке, но то, что вы хотите, до того, как оно достигнет его ширины, должно перейти к следующей строке, что невозможно, установив свойства UILabel. Для этого вам нужно установить новый строковый символ в своей строке.

ответил(а) 2013-01-21T16:43:00+04:00 7 лет, 9 месяцев назад
41

Вы пытались использовать метод UILabel Instance textRectForBounds:limitedToNumberOfLines:

Из документации:

Значение 0 указывает, что максимальное количество строк отсутствует и что прямоугольник должен охватывать весь текст.

ответил(а) 2013-01-21T16:25:00+04:00 7 лет, 9 месяцев назад
Ваш ответ
Введите минимум 50 символов
Чтобы , пожалуйста,
Выберите тему жалобы:

Другая проблема