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