首页 > 解决方案 > 无法通过 NSAttributedString 适应 UITextView/HTML 中的屏幕宽度

问题描述

我尝试将带有图像的 HTML 加载到 UITextView,但图像不想适应屏幕的宽度,它们太大了。IMG 标签和 CSS 的属性宽度没有帮助:(

这是代码:

            var content = "<html><head><meta charset='utf-8'><title>«Первый поворот налево или направо?» Секреты успеха Льюиса Хэмилтона</title><style>img {max-width: '100%'; width: '100%'; height: auto;}body{ color:red }</style></head><body><p>Иногда его превосходство заметно сразу – как в случае с потрясающей скоростью вхождения в первый поворот на Гран При Австралии нынешнего года, а иногда не столь очевидно.</p><p><img src='http://autosport.com.ru/files/feature/2018/06/29/ba7222d642a69863db32ec8e5d2e8b8f.jpg' alt='Льюис Хэмилтон © autosport.com'/>Льюис Хэмилтон</p>"
        let htmlData = NSString(string: content).data(using: String.Encoding.unicode.rawValue)
        let options = [NSAttributedString.DocumentReadingOptionKey.documentType: NSAttributedString.DocumentType.html]
        let attributedString = try! NSAttributedString(data: htmlData!, options: options, documentAttributes: nil)
        txtView.attributedText = attributedString

标签: htmlioscssswiftuitextview

解决方案


将, , ,的CSS 设置img为100% 对我有用。 max-widthmax-heightwidthheight

let content: String = "<!DOCTYPE html><html>" +
    "<head>" +
    "<meta charset='UTF-8'>" +
    "<style type='text/css'>" +
    "body {" +
    "margin: 0;" +
    "padding: 0;" +
    "}" +
    "img{" +
        "max-width: 100%;" +
        "max-height: 100%;" +
        "width: 100%;" +
        "height: 100%;" +
    "}" +
    "</style>" +
    "</head>" +
    "<body></body></html>"

推荐阅读