Есть 3 UILabel в моем TableViewCell.xib.One из них нужно установить attributedText с NSMutableAttributedString, код так:ИОС - как иметь несколько строк NSAttributedString
NSString * htmlString = [NSString stringWithFormat:@"将订单状态从 %@ 改变为 %@ ,原因:%@",lb.order_status,lb.changed_status,lb.remark];
NSMutableAttributedString * attrStr = [[NSMutableAttributedString alloc] initWithData:[htmlString dataUsingEncoding:NSUnicodeStringEncoding] options:@{ NSDocumentTypeDocumentAttribute: NSHTMLTextDocumentType } documentAttributes:nil error:nil];
NSMutableParagraphStyle *style = [[NSMutableParagraphStyle alloc] init];
style.lineBreakMode = NSLineBreakByTruncatingTail;
style.lineHeightMultiple = 0;
[attrStr addAttribute:NSParagraphStyleAttributeName
value:style
range:NSMakeRange(0, attrStr.length)];
[attrStr addAttribute:NSFontAttributeName value:[UIFont fontWithName:@"Palatino-Roman" size:13.0] range:NSMakeRange(0, attrStr.length)];
lbRemark.attributedText=attrStr;
Вопрос 1: lbRemark не может отображение с несколькими строками, но если я не использую NSAttributedString для установки lbRemark, тогда он может отображаться с несколькими строками. Что-то не так с NSAttributedString?
Вопрос 2: Мне нужна моя ячейка, чтобы рассчитать ее высоту с высотой lbRemark.
Спасибо за ответ, но это не сработает ... Я все еще хочу узнать, прикрепляю ли я верхнее и нижнее ограничение между UILabel и ячейкой, мне нужно установить ограничение для метки, например thie 'Height> = 14' ? И так как iOS8 я могу использовать Auto-layout для вычисления высоты для метки или ячейки без каких-либо кодов? –
Да, вам не нужно иметь ограничение «Height> = 14» для вашего ярлыка. Просто установите верхнюю, нижнюю, ведущую и конечную. Установите для параметра numberOfLines значение 0 (или любое другое значение, которое вы хотите). Затем добавьте две строки выше. Затем ячейки будут иметь правильную высоту, чтобы показать полную метку. – siburb
Многие подклассы UIView имеют внутренние ограничения, основанные на их содержании. Вам нужно установить ограничения для размещения метки внутри ячейки сверху, снизу, слева и справа, но не для установки высоты или ширины. Кроме того, вы должны убедиться, что эти ограничения установлены на приоритет 999, а не 1000 ... tableview вставляет его на 1000 ограничений. Наконец, вам, вероятно, потребуется реализовать функцию оценки высоты строки, чтобы активировать автозапуск ... просто верните 'UITableViewAutomaticDimension'. –