Многострочный межстрочный интервал для iOS 6
Существует проблема с межстрочным интервалом в UILabel, я использую пользовательский шрифт, и когда я использую смайлики, между двумя строками нет пробела. что, очевидно, выглядит не так хорошо. Поэтому я использовал этот код для межстрочного интервала, но приложение вылетает с ошибкой
Завершение приложения из-за необработанного исключения "NSInternalInconsistencyException", причина: "NSAttributedString недопустимо для автоматического изменения размера, оно должно иметь один стиль остаточного абзаца (или ни одного) с неупаковывающей линией LineBreakMode".
if ([cell.label2 respondsToSelector:@selector(setAttributedText:)])
{
UIFont *font =btMyriadProRegularWithSize14Pt;
NSMutableParagraphStyle *paragraphStyle = [[NSParagraphStyle defaultParagraphStyle] mutableCopy];
[paragraphStyle setLineSpacing: 22];
NSDictionary *attributes = @{ NSFontAttributeName: font, NSParagraphStyleAttributeName: paragraphStyle };
NSAttributedString *attributedString = [[NSAttributedString alloc] initWithString:chatMessage.msgString attributes:attributes];
[cell.label2 setAttributedText: attributedString];
}
else
{
NSString * msg = [NSString stringWithFormat:@"%@: %@",chatMessage.from,chatMessage.msgString];
cell.label2.text = msg;
}
2 ответа
Попробуй это
[cell.label2 setAdjustsFontSizeToFitWidth:NO];
может быть, даже только для iOS6
if (floor(NSFoundationVersionNumber) <= NSFoundationVersionNumber_iOS_6_1) { //*
[cell.label2 setAdjustsFontSizeToFitWidth:NO];
}
- определить iOS 6, как описано здесь: https://developer.apple.com/library/ios/documentation/userexperience/conceptual/transitionguide/SupportingEarlieriOS.html
Установить атрибутную строку
NSMutableParagraphStyle *paragraph = [[NSMutableParagraphStyle alloc] init];
[paragraph setLineBreakMode:NSLineBreakByWordWrapping];
[paragraph setLineBreakMode:NSLineBreakByTruncatingTail];
self.attrText = [[NSMutableAttributedString alloc] initWithString:text];
[self.attrText addAttribute:NSParagraphStyleAttributeName value:paragraph range:NSMakeRange(0, text.length)];
self.Text = text;