У меня есть NSString с этим форматом:
<p>When: Every day except Monday at 11:45am
</p><p>Where: Main Pool</p><p><br></p><p>Get refreshed in the main pool during the warm sunny days whilst participating in our animation's fit activities. Enjoy our aqua fitness 6 times per week.<br></p>
Я использую этот код для отображения атрибутов HTML, а также для установки размера и цвета шрифта по умолчанию:
NSMutableAttributedString * attrStr = [[NSMutableAttributedString alloc] initWithData:[self.Description dataUsingEncoding:NSUnicodeStringEncoding] options:@{ NSDocumentTypeDocumentAttribute: NSHTMLTextDocumentType } documentAttributes:nil error:nil];
__block BOOL found = NO;
[attrStr beginEditing];
[attrStr enumerateAttribute:NSFontAttributeName inRange:NSMakeRange(0, attrStr.length) options:0 usingBlock:^(id value, NSRange range, BOOL *stop) {
if (value) {
UIFont *oldFont = (UIFont *)value;
UIFont *newFont = [oldFont fontWithSize:16];
[attrStr addAttribute:NSFontAttributeName value:newFont range:range];
[attrStr addAttribute:NSForegroundColorAttributeName
value:[UIColor darkGrayColor]
range:range];
found = YES;
}
}];
[attrStr endEditing];
cell.descLbl.attributedText = attrStr;
Эти слова не отображаются:
fitness 6 times per week.<br></p>
он показывает только некоторые странные точки в верхней части, где буквы должны быть.
Я полагаю, что проблема в том, что когда я меняю строку на юникод, длина строки меняется, и поэтому диапазон. Как я могу это исправить?