Можете ли вы отобразить тег html <img>внутри UILabel в Swift? - PullRequest
0 голосов
/ 29 января 2020

Можете ли вы показать html <img src=''> внутри NSAttributedString, используемого в UILabel?

1 Ответ

0 голосов
/ 29 января 2020

Да, вы можете, даже если Apple не рекомендует это:

Не следует вызывать импортер HTML из фонового потока (то есть словарь опций включает в себя documentType со значением html). Он попытается синхронизироваться с основным потоком, потерпит неудачу и истечет время ожидания. Вызов его из основного потока работает (но все равно может истечь время ожидания, если HTML содержит ссылки на внешние ресурсы, которых следует избегать любой ценой). Механизм импорта HTML предназначен для реализации чего-то вроде уценки (то есть стилей текста, цветов и т. Д.), А не для общего импорта HTML.

Может attributedText UILabel использоваться для визуализации html img тегов.

Вот пример:

let str = "<img src='https://www.codeterritory.com/assets/screenshot_sidiusnova_04-f5422e9916fb114e73484758278c284e.jpg'>"
let data = str.data(using: String.Encoding.unicode)!

do {
    let attrStr = try NSAttributedString(data: data, options: [NSAttributedString.DocumentReadingOptionKey.documentType:NSAttributedString.DocumentType.html], documentAttributes: nil)    
    let label = UILabel(frame: UIScreen.main.bounds)
    label.attributedText = attrStr
    UIApplication.shared.windows.first!.addSubview(label)

} catch let error {
    print(error)
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...