Изменено ли поведение 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

Да, я видел это, и я не вижу простого общего исправления!