簡體   English   中英

在iOS Swift 3中將NSAttributedString轉換為HTML

[英]NSAttributedString to HTML in iOS Swift 3

我已經搜索了很多東西,但是只能找到純文本格式的HTML,反之則沒有,我的應用程序中有電子郵件實現,因此需要將電子郵件內容作為HTML發送到后端。

編輯1:我有豐富的文本,其中包括粗體,斜體,有序/無序列表,帶下划線的單詞。

如果您想將NSAttributedString轉換為String ,那么這里是您要尋找的擴展方法。 只需調用yourAttributtedString.htmlString()並打印出來即可。

extension NSAttributedString {
    func htmlString() -> String? {
        let documentAttributes = [NSDocumentTypeDocumentAttribute: NSHTMLTextDocumentType]
        do {
            let htmlData = try self.data(from: NSMakeRange(0, self.length), documentAttributes:documentAttributes)
            if let htmlString = String(data:htmlData, encoding:String.Encoding.utf8) {
                return htmlString
            }
        }
        catch {}
        return nil
    }
}

根據這篇文章

private func getHtmlLabel(text: String) -> UILabel {
    let label = UILabel()
    label.numberOfLines = 0
    label.lineBreakMode = .byWordWrapping
    label.attributedString = stringFromHtml(string: text)
    return label
}

private func stringFromHtml(string: String) -> NSAttributedString? {
    do {
        let data = string.data(using: String.Encoding.utf8, allowLossyConversion: true)
        if let d = data {
            let str = try NSAttributedString(data: d,
                                             options: [NSDocumentTypeDocumentAttribute: NSHTMLTextDocumentType],
                                             documentAttributes: nil)
            return str
        }
    } catch { }
    return nil
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM