2017-01-12 3 views
1

У меня возникли проблемы с использованием NSMutableAttributedString, чтобы прочитать строку HTML и увеличить размер шрифта.NSMutableAttributedString с размерами шрифта и свойствами HTML-тегов

Входной HTML: <b>Lorem ipsum</b> dolor sit <i>amet</i></h3>consectetuer</h3> adipiscing elit

И NSMutableAttributedString преобразуется, как показано ниже:

let htmlData = input.data(using: .utf8)! 

let htmlAttrs = [NSDocumentTypeDocumentAttribute:NSHTMLTextDocumentType,NSCharacterEncodingDocumentAttribute:String.Encoding.utf8.rawValue] as [String : Any] 

do{ 
    let new = try NSMutableAttributedString(data: htmlData, options: htmlAttrs, documentAttributes: nil) 

    let tillEnd = NSRange(location: 0, length: new.length) 
    let attr:UIFont = UIFont.systemFont(ofSize: 25) 

    //new.addAttribute(NSFontAttributeName, value: attr, range: tillEnd) 

    textView.attributedText = new 
} 

Он читает HTML-теги правильно и дает OUTPUT

HTML properly encoded.

Но если я хочу увеличить размер шрифта и раскол addAttribute, размер шрифта увеличивается, но HTML не отображается.

font size increase but html reading gone

Могу ли я приписал строку как с размером шрифта и рендеринга HTML?

+1

Это нормальное поведение. Курсив и полужирный находятся внутри UIFont (и так в NSFontAttributeName). Вам нужно повторить NSFontAttributeName вашего NSAttributedString. Хороший старт: http://stackoverflow.com/a/41413014/1801544 (Мэтт ответ, но вместо создания нового шрифта, такого как Грузия, используйте тот же, что и раньше). – Larme

+0

Спасибо, ответ мата сработал. – khanHussain

ответ

0

Вы можете использовать стиль атрибут диапазона тега, чтобы включить CSS с размером шрифта собственности.

Смежные вопросы