Мне нужно проанализировать основные строки HTML, содержащие <b>
(полужирный), <i>
(курсив) и <u>
(подчеркивание) тегов, ничего более, просто эти простые теги.Разбирайте HTML в NSAttributedString с шрифтом Сан-Франциско? (iOS 9)
Сейчас я могу получить только теги <u>
(нужное подчеркнуть), чтобы правильно отображался в NSAttributedString
, при использовании нового San Francisco
в iOS 9
.
Мне действительно нужно получить <b>
(полужирным шрифтом) и <i>
(курсив) для рендеринга.
Вот что я делаю:
let text = "<i>Any</i> <b>Text</b> <u>that's basic HTML</u>"
let font = UIFont.preferredFontForTextStyle(UIFontTextStyleBody)
let modifiedFont = NSString(format:"<span style=\"font-family: '-apple-system','HelveticaNeue'; font-size: %f \">%@</span>",
font.pointSize, text) as String
let data = (modifiedFont as NSString).dataUsingEncoding(NSUTF8StringEncoding)
let attributedString = try? NSAttributedString(data: data!, options:
[ NSDocumentTypeDocumentAttribute : NSHTMLTextDocumentType,
NSCharacterEncodingDocumentAttribute : NSUTF8StringEncoding,
NSFontAttributeName : font ],
documentAttributes: nil)
Но, к сожалению, <i>
(курсив) и <b>
(выделены жирным шрифтом) теги никогда не делают, только <u>
(подчеркивание) делает правильно.
Это точно такой же метод, используемый для работы на iOS 8
с Helvetica-Neue
шрифтом, но это не работает с новым iOS 9
San Francisco
шрифта
Помогите мне <b>
(выделены жирным шрифтом) и <i>
(курсив), чтобы правильно отображался в NSAttributedString
!
Обновление: Я использую динамический текст во всем приложении. Это может быть причиной того, почему вещи не работают ...
Заканчивать мой ответ ниже. Он дает хороший совет для работы как с динамическим текстом, так и с NSAttributedString. – Sakiboy