2016-03-04 2 views
3

У меня есть строка, которая является случайной последовательности чисел, включая пробелыUILabel с конечными пробелами не центрирования правильно

NSString *myString; 

печатаю, что на этикетке

_myLabel.text = myString; 

Я хотел, чтобы это было в центре, поэтому я использую

myLabel.textAlignment = NSTextAlignmentCenter; 

Но он не работает должным образом. При центрировании он игнорирует любые конечные нули. Но конечные нули - символы! Могу ли я его распознать?

+2

Можете ли вы предоставить более подробный образец кода или скриншот? Отключен ли текст? Если это так, вам просто нужно вызвать sizeToFit на ярлыке после установки текста. – Steve

+0

Размер метки устанавливается вручную и достаточно большой. Число символов фиксировано. Проблема возникает только тогда, когда последний символ является пространством. Поэтому, если у меня есть myString = @ "Hello", я получаю слово «Hello» по центру, тогда как я ожидаю, что он закончится в центре из-за 5 пробелов (и моноширинного шрифта, который я использовал). –

+0

Попробуйте заменить стандартные символы пробела пробелами. – rmaddy

ответ

3

Способ работы текста на этикетке - он форматируется стандартной информацией о форматировании - например, обрезка и т. Д. Если вы не хотите, чтобы ios контролировал это. Вы можете программно установить атрибутText. это не проходит через форматирование. Вот документация яблока на том


attributedText стилизованный текст отображается на этикетке.

@property(nonatomic,copy) NSAttributedString *attributedText

Обсуждение

Это свойство nil по умолчанию. Присвоение нового значения это свойство также заменяет значение свойства text на одинаковых строковых данных, хотя без форматирования информации. В дополнении добавление нового значения обновляет значения в font, textColor и другие свойства, связанные с стилем, так что они отражают информацию стиля , начиная с местоположения 0 в атрибутной строке.

Смежные вопросы