Ограничить NSAttributedString количество строк
Есть ли способ ограничить количество строк в абзаце в NSAttributedString?
Я добавляю две строки в NSAttributedString, и я хочу, чтобы они были максимум 3 строки, первая строка будет 1-2 строки, урезанные при необходимости. и вторая строка должна быть всегда в последней строке
Что-то вроде:
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 строки и выталкивает вторую строку из метки.
Как я могу ограничить первый абзац строки до 2 строк?
2 ответа
Вы можете посчитать количество букв, которые ваш графический компонент (UITextView или UITextField) может обработать, используя прописные и большие буквы, чтобы увидеть это. Чем использовать:
- (BOOL)textView:(UITextView *)textView shouldChangeTextInRange:(NSRange)range replacementText:(NSString *)text{}
проверять каждый ввод, если суммы достаточно, или если она еще доступна для большего количества букв. Создайте ограничение на число символов и уменьшайте его каждый раз, когда вызывается этот метод.
Ограничьте количество строк одним ограничением!
Просто добавьте NSLayoutConstraint в UILabel со следующими значениями:
- attribute = NSLayoutAttributeHeight ('Высота' в раскадровке)
- отношение = NSLayoutRelationLessThanOrEqual ("меньше или равно" в раскадровке)
- константа = высота-для-количества строк-вы хотите
См. Интеграция раскадровки: