2014-02-13 4 views
2

Я использовал UILabel для отображения текста с vertical alignment. Я показываю текст как символ по символу с вертикальным выравниванием. На самом деле это движущийся текст путем выравнивания с CABasicAnimation. Но моя проблема здесьUILabel Вертикальное выравнивание отсутствует свободное пространство

  1. Каждая строка должна show one character, но когда я пытаюсь растянуть ширину этикетки на показать один символ, то символ вытер частично. см. экран снимок xib (образец с небольшим текстом) .. Или попробуйте увеличить размер кадра, некоторые строки показывают один символ и некоторые показывает двойной символ.
  2. Пространство отсутствует между словами. см. скриншот.

Как исправить это с помощью моего xib? Ответ также приемлем с программным обеспечением.

enter image description here

Примечание: Текст, используемый в данном примере "текст с длиной".

+4

Вставить новый символ строки '\ n' между буквами – vokilam

+0

Я уже использую это. Но обертка персонажа не воспринимала этот символ. попробуйте с помощью xcode. Вы можете увидеть эту проблему. – Mani

+0

Вы попробовали пробел – codercat

ответ

1

Вам не нужен вертикальный выровн. Просто сделайте UILabel более широким и введите a \ n после каждого символа строки.

 NSString *longString = @"This is a very very long string"; 

     NSString *labelString = @""; 

     self.label.text = labelString; 
     self.label.numberOfLines = 500; //just put a big number or calculate something 

     for (int n=longString.length - 1; n > -1; --n) { 

      labelString = [NSString stringWithFormat:@"%@\n%@", [longString substringWithRange:NSMakeRange(n, 1)], labelString]; 

       self.label.text = labelString; 

     } 
+0

См. «Я хочу вертикальное выравнивание с моим проектом». Потому что у меня недостаточно высоты с видом. Поэтому я хочу показать флеш-новости по вертикали. Ты понял? – Mani

+0

Да, я понял. Все еще не думайте, что вам нужно вертикальное выравнивание. просто добавьте символы один за другим, которые дадут вам эффект. вы можете даже деформировать его в animateWithDuration, чтобы сделать его более элегантным. – Mika

+0

Вы имели в виду горизонтально? – Mani

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