如何在ios标签中显示html格式的文本
我想在IOS中的UILabel
上显示html格式的文本。
在Android中,它有像这样的.setText(Html.fromHtml(somestring));
从XML格式的string资源中设置TextView文本
我想知道什么/如果在iOS中有相当的?
我search并find这个线程:
如何从iPhone上的API显示HTML文本?
但它build议使用UIWebView
。 我需要在每个表格单元格中显示html格式的string,所以我认为每行1个webview
似乎有点沉重。
那还有其他的吗?
谢谢。
对于Swift 2.0 :
var attrStr = try! NSAttributedString( data: "<b><i>text</i></b>".dataUsingEncoding(NSUnicodeStringEncoding, allowLossyConversion: true)!, options: [ NSDocumentTypeDocumentAttribute: NSHTMLTextDocumentType], documentAttributes: nil) label.attributedText = attrStr
Swift 3.0
do { let attrStr = try NSAttributedString( data: "<b><i>text</i></b>".data(using: String.Encoding.unicode, allowLossyConversion: true)!, options: [ NSDocumentTypeDocumentAttribute: NSHTMLTextDocumentType], documentAttributes: nil) label.attributedText = attrStr } catch let error { }
你可以尝试一个属性string:
var attrStr = NSAttributedString( data: "<b><i>text</i></b>".dataUsingEncoding(NSUnicodeStringEncoding, allowLossyConversion: true), options: [ NSDocumentTypeDocumentAttribute: NSHTMLTextDocumentType], documentAttributes: nil, error: nil) label.attributedText = attrStr
Try this: let label : UILable! = String.stringFromHTML("html String") func stringFromHTML( string: String?) -> String { do{ let str = try NSAttributedString(data:string!.dataUsingEncoding(NSUTF8StringEncoding, allowLossyConversion: true )!, options:[NSDocumentTypeDocumentAttribute: NSHTMLTextDocumentType, NSCharacterEncodingDocumentAttribute: NSNumber(unsignedLong: NSUTF8StringEncoding)], documentAttributes: nil) return str.string } catch { print("html error\n",error) } return "" } Hope its helpful.