2015-02-10 2 views
7

Есть ли способ ограничить количество строк в абзаце в NSAttributedString?
Я добавляю две строки в NSAttributedString, и я хочу, чтобы они были максимально 3 строки, первая строка будет 1-2 строки, при необходимости усеченная. а вторая строка должна быть всегда на последней строке
Что-то вроде:
Предел NSAttributedString количество строк

this is my first string 
if its too long i't will get trun... 
But this is my second string 

, что я сделал это:

// First string 
    NSAttributedString *first = [[NSAttributedString alloc] initWithString:@"this is my first string if its too long i't will get trunticated" 
                   attributes:@{NSForegroundColorAttributeName:[UIColor redColor], 
                      NSFontAttributeName:[UIFont fontWithName:@"HelveticaNeue-Light" size:17.0]]; 
    [str appendAttributedString:first]; 

    // New line 
    [str appendAttributedString:[[NSAttributedString alloc] initWithString:@"\n"]]; 

    // Add photo count 
    NSAttributedString *second = [[NSAttributedString alloc] initWithString:@"But this is my second string" 
                   attributes:@{NSForegroundColorAttributeName:[UIColor redColor], 
                      NSFontAttributeName:[UIFont fontWithName:@"HelveticaNeue-Light" size:14.0]}]; 
    [str appendAttributedString:second]; 

Но результат:

this is my first string 
if its too long i't will get 
trunticated 

первая строка принимает первые 3 строки и выталкивает вторую строку из метки.
Как я могу ограничить первый абзац строки двумя строками?

+0

Вы еще не смогли это решить? – ZeMoon

+1

Nop ... пока я просто использую две разные метки – ItayAmza

ответ

0

Ограничить количество строк одним ограничением!

Просто добавьте NSLayoutConstraint на вашем UILabel со следующими значениями:

  • атрибут = NSLayoutAttributeHeight ('Высота' в раскадровку)
  • отношение = NSLayoutRelationLessThanOrEqual ('меньше или равно' в раскадровку)
  • постоянный = рост для чИСЛА-линий, что вы хотите

См Раскадровка интеграция:

See storyboard integration

1

Вы можете подсчитать количество букв, которые ваш графический компонент (UITextView или UITextField) может обрабатывать с использованием символов верхнего и большего размера, чтобы увидеть это. Than, use:

- (BOOL)textView:(UITextView *)textView shouldChangeTextInRange:(NSRange)range replacementText:(NSString *)text{} 

проверить каждый вход, если сумма достаточна или если она по-прежнему доступна для большего количества букв. Создайте ограничение персонажа и уменьшите его каждый раз, когда вызывается этот метод.

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