iOS中支持HTML文本的标签控件——MDHTMLLabel
iOS中支持HTML文本的标签控件——MDHTMLLabel
一、引言
在iOS开发中对HTML的处理很多时候除了使用WebView外,还需要原生的控件对其进行渲染,例如将HTML字符串渲染为图文混排的View视图。Git上有很多轻量级的HTML渲染框架,列举一些如下:
RTLabel:基于UIView的HTML文本渲染控件,git地址:https://github.com/honcheng/RTLabel。
RCLabel:与RTLabel思路相同,基于RCLabel之上,也是UIView的子类,支持了对HTML中的本地图片标签进行渲染。git地址:https://github.com/Janak-Nirmal/RichContentLabel。
MDHTMLLabel:与RTLabel和RCLabel不同的是,其是UILabel的子类,更加轻量级,不能支持图片标签。git地址:https://github.com/mattdonnelly/MDHTMLLabel。
关于RCLabel对图片便签的支持,其只能支持本地的图片,不能支持远程URL图片链接,这在开发中将十分局限,以前我曾加RCLabel做了改造,加了支持远程图片URL的方法,我把它集成在了一个基础框架中,需要的伙伴可以参考下,git地址:[https://github.com/ZYHshao/YHBaseFoundationTest](https://github.com/ZYHshao/YHBaseFoundationTest)。配套的讲解博客地址如下:[http://my.oschina.net/u/2340880/blog/499311](http://my.oschina.net/u/2340880/blog/499311)。
本篇博客主要讨论MDHTMLLabel的使用。
二、MDHTMLLabel的创建与设置
MDHTMLLabel框架十分小巧,其中只有两个文件,总计2000余行代码。通过HTML字符串来创建一个MDHTMLLabel控件示例代码如下:
1 | NSString * kDemoText = @"<a href='http://github.com/mattdonnelly/MDHTMLLabel'>MDHTMLLabel</a> is a lightweight, easy to use replacement for <b>UILabel</b> which allows you to fully <font face='Didot-Italic' size='19'>customize</font> the appearence of the text using HTML (with a few added features thanks to <b>CoreText</b>), as well letting you handle whenever a user taps or holds down on link and automatically detects ones not wrapped in anchor tags/>"; |
效果如下图所示:
MDHTMLLabel中可以设置的一些属性解析如下:
1 | //设置超链接文字的属性字典 和设置AttributeString方法一致 |
关于HTML数据中的超链接的相应,MDHTMLLabel是通过代理回调的方式处理的,如下:
1 | @protocol MDHTMLLabelDelegate <NSObject> |
专注技术,热爱生活,交流技术,也做朋友。
——珲少 QQ群:203317592