Swift处理HTML标签

当我们需要加载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
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 179,948评论 25 708
  • 问答题47 /72 常见浏览器兼容性问题与解决方案? 参考答案 (1)浏览器兼容问题一:不同浏览器的标签默认的外补...
    _Yfling阅读 14,286评论 1 92
  • 发现 关注 消息 iOS 第三方库、插件、知名博客总结 作者大灰狼的小绵羊哥哥关注 2017.06.26 09:4...
    肇东周阅读 16,467评论 4 61
  • 【蜕变新生】20170412学习力践行D28: 1、前天买了小熊宝宝、鼠小弟、古利和古拉,昨天到货,拿回家两本,小...
    高汝鑫阅读 368评论 0 0
  • 我一直是一个不擅长考试的人。我周围有很多人真的就是很擅长考试。甚至有的都没学过,都是蒙,可是人家就是能蒙及格。你说...
    寻happiness阅读 164评论 0 0

友情链接更多精彩内容