I'm currently using this extension provided by this answer to convert html to strings within a UITextView
. Everything works perfectly but for some strange reason the NSFontAttributeName
is not applied to the string during the process. Is there something I'm doing wrong here? (or should I apply the NSAttributedString
after reeving the attributed html parsed string? If so, is it possible to apply an attribute to an NSAttributeString
? ).
PS. Font size is not change when using html2String
but the links within the html is are longer recognized by the UITextView
extension String {
var html2AttributedString: NSAttributedString? {
guard
let data = dataUsingEncoding(NSUTF8StringEncoding)
else { return nil }
do {
return try NSAttributedString(data: data, options: [NSDocumentTypeDocumentAttribute:NSHTMLTextDocumentType,NSCharacterEncodingDocumentAttribute:NSUTF8StringEncoding, NSFontAttributeName : UIFont.systemFontOfSize(17.0)], documentAttributes: nil)
} catch let error as NSError {
print(error.localizedDescription)
return nil
}
}
var html2String: String {
return html2AttributedString?.string ?? ""
}
}
cell.desc.attributedText = apiData[currentIndex].description!.html2AttributedString //Font attribute not recognized
cell.desc.text = apiData[currentIndex].description!.html2String //Font recognized by links no longer recognized