2016-02-03 8 views
1

код работает fine..all HTML-теги также реализованы, но когда я установить атрибуты, такие как шрифт и цвет строки HTML преобразовать в нормальную строку ..NSMutableString не работает для HTML Текст

NSString * htmlString = [NSString stringWithFormat:@"<html><div>%@</div></html>",_strAchievementMsg]; 

NSDictionary *attrDict = @{ NSFontAttributeName : [UIFont fontWithName:HelveticaNeue size:11.0f], 
NSForegroundColorAttributeName :[UIColor colorWithRed:105.0f/255.0f green:115.0f/255.0f blue:144.0f/255.0f alpha:1.0f] 
              }; 
NSMutableAttributedString * attrStr = [[NSMutableAttributedString alloc] initWithData:[htmlString dataUsingEncoding:NSUnicodeStringEncoding] options:@{ NSDocumentTypeDocumentAttribute: NSHTMLTextDocumentType } documentAttributes:nil error:nil]; 
[attrStr addAttributes:attrDict range:NSMakeRange(0,attrStr.length)]; 
_strAchievementAttributed = attrStr; 

ответ

2

Я. я была такая же проблема каким-то причинам HTML NSAttributedString не работает с атрибутами, но вы можете установить шрифт и цвет с помощью HTML строку, как это:

NSString * htmlString = [NSString stringWithFormat:@"<html><div style='color:#697390; font-size:11px; font-family:HelveticaNeue;'>%@</div></html>",_strAchievementMsg]; 
+0

ха-ха, это Jugaad – HarshIT

1

вы должны обновить все диапазоны в Wi NSMutableAttributedString й обновленный шрифт и значения цвета. Используйте этот модифицированный код:

NSString * htmlString = [NSString stringWithFormat:@"<html><div>%@</div></html>",_strAchievementMsg]; 

NSDictionary *attrDict = @{ NSFontAttributeName : [UIFont fontWithName:HelveticaNeue size:11.0f], 
          NSForegroundColorAttributeName :[UIColor colorWithRed:105.0f/255.0f green:115.0f/255.0f blue:144.0f/255.0f alpha:1.0f] 
          }; 
NSMutableAttributedString * attrStr = [[NSMutableAttributedString alloc] initWithData:[htmlString dataUsingEncoding:NSUnicodeStringEncoding] options:@{ NSDocumentTypeDocumentAttribute: NSHTMLTextDocumentType } documentAttributes:nil error:nil]; 

NSMutableAttributedString * updatedAttrStr = [[NSMutableAttributedString alloc] initWithAttributedString:attrStr]; 

[attrStr enumerateAttributesInRange:NSMakeRange(0, attrStr.length) options:0 usingBlock:^(NSDictionary<NSString *,id> * _Nonnull attrs, NSRange range, BOOL * _Nonnull stop) { 
    [updatedAttrStr addAttributes:attrDict range:range]; 
}]; 
_strAchievementAttributed = updatedAttrStr; 
+0

спасибо @ Арун Ammannaya –