I am getting a title in HTML format as
Example
I
I did this on UITextView as follows:
[detailView loadHTMLString:[NSString stringWithFormat:@"<div style='text-align:justify; font-size:13px;font-family:HelveticaNeue;color:#362932;'>%@",[model.dict valueForKey:@"description"]] baseURL:nil];
Or you can use RTLabel library: https://github.com/honcheng/RTLabel to display html text along with its formatting on a label.
For Swift 4 and above use:
guard let data = "foo".data(using: String.Encoding.unicode) else { return }
try? titleLabel.attributedText =
NSAttributedString(data: data,
options: [.documentType:NSAttributedString.DocumentType.html],
documentAttributes: nil)
For iOS7 or more you can use this:
NSString * htmlString = @"<html><body> Some html string </body></html>";
NSAttributedString * attrStr =
[[NSAttributedString alloc] initWithData:[htmlString dataUsingEncoding:NSUnicodeStringEncoding]
options:@{NSDocumentTypeDocumentAttribute: NSHTMLTextDocumentType}
documentAttributes:nil error:nil];
UILabel * myLabel = [[UILabel alloc] init];
myLabel.attributedText = attrStr;
-(NSString*)convertHtmlPlainText:(NSString*)HTMLString{
NSData *HTMLData = [HTMLString dataUsingEncoding:NSUTF8StringEncoding];
NSAttributedString *attrString = [[NSAttributedString alloc] initWithData:HTMLData options:@{NSDocumentTypeDocumentAttribute: NSHTMLTextDocumentType} documentAttributes:NULL error:NULL];
NSString *plainString = attrString.string;
return plainString;
}
UILabel * htmlLabel = [UILabel alloc] init];
htmlLabel.text = [self convertHtmlPlainText:htmlResponse];
If Html Text is like
var planeText = "Unseen and not Purchased!"
//setting color to the text
var htmlText = "<font color=\"#f20707\">" + planeText + "</font>"
We can set the text to UILabel
like this
if let htmlData = htmlText.data(using: String.Encoding.unicode) {
do {
let attributedText = try NSAttributedString(data: htmlData,
options: [NSDocumentTypeDocumentAttribute: NSHTMLTextDocumentType],
documentAttributes: nil)
//Setting htmltext to uilable
uilable.attributedText = attributedText
} catch let e as NSError {
//setting plane text to uilable cause of err
uilable.text = planeText
print("Couldn't translate \(htmlText): \(e.localizedDescription) ")
}
}
extension UILabel {
func set(html: String) {
if let htmlData = html.data(using: .unicode) {
do {
self.attributedText = try NSAttributedString(data: htmlData,
options: [.documentType: NSAttributedString.DocumentType.html],
documentAttributes: nil)
} catch let e as NSError {
print("Couldn't parse \(html): \(e.localizedDescription)")
}
}
}
}