2017-08-18 13 views
0

UILabelを使用して表示する必要があるhtml文字列を受け取りました。その場合、UIFontを追加しないで、文字列が期待どおりに表示されます。アトリビュートされた文字列が特定のフォントで太字とイタリックのテキストを表示しない

+(NSAttributedString *)getAttributedText:(NSString *)text { 
NSAttributedString *attrStr = [[NSAttributedString alloc] initWithData:[text dataUsingEncoding:NSUnicodeStringEncoding] options:@{ NSDocumentTypeDocumentAttribute: NSHTMLTextDocumentType } documentAttributes:nil error:nil]; 
return attrStr; 
} 

enter image description here

しかし、フォントが非常に小さいので、私はそれを変更する必要があります。

+(NSAttributedString *)getAttributedText:(NSString *)text { 
NSAttributedString *attrStr = [[NSAttributedString alloc] initWithData:[text dataUsingEncoding:NSUnicodeStringEncoding] options:@{ NSDocumentTypeDocumentAttribute: NSHTMLTextDocumentType } documentAttributes:nil error:nil]; 
NSMutableAttributedString *newString = [[NSMutableAttributedString alloc] initWithAttributedString:attrStr]; 
NSRange range = (NSRange){0,[newString length]}; 
[newString addAttribute:NSFontAttributeName value:[UIFont fontWithName:@"OpenSans" size:14.0] range:range]; 
return newString; 
} 

は今、私は

enter image description here

などのテキスト属性を維持しながら、フォントを設定する他の方法を参照してください?

+0

イタリック体と太字体は 'UIFont'の中に入っているので、置き換えたときにすべてが変更されます。あなたはHTMLStringを自分自身で修正したり、NSAttributedStringを使って反復することができます。 – Larme

+0

私の答えを確認してください –

答えて

0
+(NSAttributedString *)getAttributedText:(NSString *)text { 
     text = [text stringByAppendingString:[NSString stringWithFormat:@"<style>body{font-size:%fpx;}</style>", 15]]; // Font size that you want to display for text 

     NSAttributedString *attrStr = [[NSAttributedString alloc] initWithData:[text dataUsingEncoding:NSUnicodeStringEncoding] 
                   options:@{NSDocumentTypeDocumentAttribute: NSHTMLTextDocumentType, 
                     NSCharacterEncodingDocumentAttribute: @(NSUTF8StringEncoding)} 
                documentAttributes:nil 
                   error:nil]; 
} 

これはあなたを助けるかもしれません... !!!

+0

ちょっと - これは、フォントサイズと名前の両方に使用できますか? –

+0

text = [text stringByAppendingString:[NSString stringWithFormat:@ ""、 "フォント名"、 "フォントサイズ"]];どんな言葉が太字か下線になるかをどのように識別するのか。同じフォントを大きなフォントサイズで使用する方が良いでしょう。 –

関連する問題