Изменено ли поведение UILabel в xCode 5/iOS 7?
Я только что перешел из xCode 4.x в xCode 5, а также совершил переход к iOS 7. В прошлом я разместил текст с конечными пробелами в UILabel
, а использование выравнивания справа оставляет мало места для право на текст. Поскольку я перешел на xCode 5, это поведение, похоже, изменилось. Когда UILabel
выравнивает текст по правому краю, он, как представляется, игнорирует конечные пробелы - и выравнивает текст так, как будто нет конечных пробелов вообще.
Кто-нибудь еще видел это поведение? Есть ли способ добавить кросс-вставки в xCode для настройки для этого нового поведения или это должно быть сделано в коде?
Ответы
Ответ 1
Я вижу такое же поведение. Я думаю, что проблема не в изменении xCode5, а при изменении в iOS7. Apple, похоже, теперь снимает все символы пробела из текстовых блоков, которые будут отображаться с использованием UILabel, которые используются для ввода строк либо в начале строки, либо в конце строки. Если в строке между двумя словами используются несколько символов пробела, эти символы не разделяются.
Мы использовали UILabels для компоновки многострочных блоков текста, поставляемых с языка разметки. Некоторое текстовое содержимое должно быть выровнено по центру, но есть намеренно добавленные пробелы, чтобы подтолкнуть определенную строку текста влево или вправо. Это было признано и отлично работает под ios6, но ломается под ios7.
Почему Apple сделала это изменение, мне интересно. У кого-то еще есть эта проблема - какие-либо идеи для исправления для этого? Мы экспериментируем с пользовательским шрифтом, который имеет управляющий символ, который выглядит как пробел, но не является.
Ответ 2
Посмотрите поля текста UILabel
Большинство предложений делают это с помощью кодов.
Я сделал свое дело с чем-то вроде этого:
[myLabel setFrame:CGRectMake(75 ,20,size.width + 5,size.height+2)];
где size
- это CGSize
моего текстового содержимого.
Вы также можете попробовать сделать это с помощью Auto Layout constraints
.
Ответ 3
Я использовал \a:
label.text = [NSString stringWithFormat: @"%@ \a", originalString];
Это заставляет/тщетно отображает пробел.
Ответ 4
Да, я видел это, и я не вижу простого общего исправления!