当我们需要加载html中的文章内容时候,可以使用WebView、UIITextView来加载。当使用UIITextView时候就会出现原有的html的标签,比如:“<html></html>”等,这就需要我们进行标签处理。方法如下:
使用UIITextView加载
//处理html标签
do{
let attrStr = try NSAttributedString(data: (内容:String.dataUsingEncoding(NSUnicodeStringEncoding, allowLossyConversion: true)!)!,
options: [NSDocumentTypeDocumentAttribute: NSHTMLTextDocumentType], documentAttributes: nil)
//自定义的textView
textView.attributedText = attrStr
}catch let error as NSError {
print(error.localizedDescription)
}
那么在OC中使用的方法是:
- (NSString *)flattenHTML:(NSString *)html {
NSScanner *theScanner;
NSString *text = nil;
theScanner = [NSScanner scannerWithString:html];
while ([theScanner isAtEnd] == NO) {
[theScanner scanUpToString:@"<" intoString:NULL];
[theScanner scanUpToString:@">" intoString:&text];
// replace the found tag with a space
//(you can filter multi-spaces out later if you wish)
html = [html stringByReplacingOccurrencesOfString: [NSString stringWithFormat:@"%@>", text] withString:@""];
}
return html;
}
使用WebView加载
我们可以使用WebView进行展示。
//定义webView
var _webView : UIWebView?
override func viewDidLoad() {
super.viewDidLoad()
//设置frame
_webView = UIWebView(frame: UIScreen.mainScreen().bounds);
//加载webView
view.addSubview(_webView!)
}
使用自定义富文本
//富文本设置
var attributeString = NSMutableAttributedString(string:"welcome to hangge.com")
//从文本0开始6个字符字体HelveticaNeue-Bold,16号
attributeString.addAttribute(NSFontAttributeName, value: UIFont(name: "HelveticaNeue-Bold", size: 16)!,
range: NSMakeRange(0,6))
//设置字体颜色
attributeString.addAttribute(NSForegroundColorAttributeName, value: UIColor.blueColor(),
range: NSMakeRange(0, 3))
//设置文字背景颜色
attributeString.addAttribute(NSBackgroundColorAttributeName, value: UIColor.greenColor(),
range: NSMakeRange(3,3))
textView.attributedText = attributeString