ios用lable和textview加载html标签

根据应用需求,需要将后台传过来的html标签文本显示在页面上,首先想到的是用WKWebview显示,虽然可以实现但是感觉比较耗内存。尝试用lable加载html,代码以及效果如下所示,发现表格的边框样式加载不出来

NSString *str = @"罗梦槐,您好!您的借款项目【0903.按月3.02】债权转让已经完成,当前持有信息如下:<table  border=‘1‘ cellpadding=‘0‘ width=‘80%;‘ cellspacing=‘0‘><tr><td align=‘center‘>用户名</td><td align=‘center‘>债权持有金额</td></tr><tr><td align=‘center‘>13944831072</td><td align=‘center‘>2200.00</td></tr><tr><td align=‘center‘>13944831077</td><td align=‘center‘>600.00</td></tr><tr><td align=‘center‘>13944831078</td><td align=‘center‘>200.00</td></tr><tr><td align=‘center‘>13944831078</td><td align=‘center‘>200.00</td></tr><tr><td align=‘center‘>13944831078</td><td align=‘center‘>1800.00</td></tr><tr><td align=‘center‘>13944831078</td><td align=‘center‘>800.00</td></tr><tr><td align=‘center‘>13944831079</td><td align=‘center‘>400.00</td></tr></table>";

UILabel *lab = [[UILabel alloc] initWithFrame:CGRectMake(15, 100, K_SCREEN_WIDHTH-30, 300)];
lab.numberOfLines = 0;
[self.view addSubview:lab];

NSAttributedString * attrStr = [[NSAttributedString alloc] initWithData:[str dataUsingEncoding:NSUnicodeStringEncoding] options:@{ NSDocumentTypeDocumentAttribute: NSHTMLTextDocumentType } documentAttributes:nil error:nil];
lab.attributedText = attrStr;
lab.font = [UIFont systemFontOfSize:15];

然后抱着试试的心态用textview加载html标签发现边框样式可以显示出来了,应该是底层内部对lab和textview做了不同的处理,代码以及效果如下

UITextView *textView = [[UITextView alloc]initWithFrame:CGRectMake(15, 400, K_SCREEN_WIDHTH-30, 300)];
textView.userInteractionEnabled = NO;
[self.view addSubview:textView];

NSAttributedString * attrStr = [[NSAttributedString alloc] initWithData:[str dataUsingEncoding:NSUnicodeStringEncoding] options:@{ NSDocumentTypeDocumentAttribute: NSHTMLTextDocumentType } documentAttributes:nil error:nil];
textView.attributedText = attrStr;
textView.font = [UIFont systemFontOfSize:15];

总结textView和lable都可以加载html标签内容,但是textview相比于lable可以同时加载出标签里的样式,当然通过webview也可以实现对html的加载但是相对更耗内存这里不建议使用,希望对遇到同样问题的朋友有帮助

原文地址:https://www.cnblogs.com/zk1947/p/9599424.html

时间: 2024-08-02 03:30:17

ios用lable和textview加载html标签的相关文章

iOS开发UI篇—懒加载

iOS开发UI篇—懒加载 1.懒加载基本 懒加载——也称为延迟加载,即在需要的时候才加载(效率低,占用内存小).所谓懒加载,写的是其get方法. 注意:如果是懒加载的话则一定要注意先判断是否已经有了,如果没有那么再去进行实例化 2.使用懒加载的好处: (1)不必将创建对象的代码全部写在viewDidLoad方法中,代码的可读性更强 (2)每个控件的getter方法中分别负责各自的实例化处理,代码彼此之间的独立性强,松耦合 3.代码示例 1 // 2 // YYViewController.m 3

TextView加载html图片异步显示(Picasso)

项目中有这样一个需求: textview加载一段 html标签 其中包含 "<Img url= " 图片异步展示 而且 根据图片的比例 宽度满屏展示. 思路: 重写textview Html.fromHtml方法  以及 图片Picasso展示(后面会附带Picasso 的两个转换类) 感觉网上没有合适的或者用的是Gilde加载 其实无论是Gilde还是Picasso加载豆豆都能满足我们的需求. 需求描述完毕 上张帅图: 好吧 废话不多说了 直接上实现代码 RichText: p

iOS开发UI基础—懒加载

iOS开发UI基础-懒加载 1.懒加载基本 懒加载--也称为延迟加载,即在需要的时候才加载(效率低,占用内存小).所谓懒加载,写的是其get方法. 注意:如果是懒加载的话则一定要注意先判断是否已经有了,如果没有那么再去进行实例化 2.使用懒加载的好处: (1)不必将创建对象的代码全部写在viewDidLoad方法中,代码的可读性更强 (2)每个控件的getter方法中分别负责各自的实例化处理,代码彼此之间的独立性强,松耦合 3.代码示例 1 // 2 // YYViewController.m

iOS网络编程(三) 异步加载及缓存图片----&gt;SDWebImage

@SDWebImage提供一个UIImageView的类别以支持加载来自网络的远程图片.具有缓存管理.异步下载.同一个URL下载次数控制和优化等特征. @SDWebImage的导入1.https://github.com/rs/SDWebImage 下载SDWebImage开源包2.将类包拖入工程,再导入MapKit.framework.ImageIO.framework两个框架3.SDWebImage是支持ARC的,在MRC的工程中要注意,可参考MRC工程配置ARC4.注意:SDWebImag

iOS开发网络篇 —— OC加载HTML代码

html代码 图1 样式一:"<p><img src=\"/upload/image/20170609/1496978712941664.jpg\" title=\"1496978712941664.jpg\" alt=\"7.jpg\"/>测试内容信息无错</p>" 样式二:<h1 style=\"font-size: 32px; font-weight: bold; bo

iOS开发UI中懒加载的使用方法

1.懒加载基本 懒加载——也称为延迟加载,即在需要的时候才加载(效率低,占用内存小).所谓懒加载,写的是其getter方法.说的通俗一点,就是在开发中,当程序中需要利用的资源时.在程序启动的时候不加载资源,只有在运行当需要一些资源时,再去加载这些资源. 我们知道iOS设备的内存有限,如果在程序在启动后就一次性加载将来会用到的所有资源,那么就有可能会耗尽iOS设备的内存.这些资源例如大量数据,图片,音频等等,所以我们在使用懒加载的时候一定要注意先判断是否已经有了,如果没有那么再去进行实例化 2.使

iOS开发swift版异步加载网络图片(带缓存和缺省图片)

iOS开发之swift版异步加载网络图片 与SDWebImage异步加载网络图片的功能相似,只是代码比较简单,功能没有SD的完善与强大,支持缺省添加图片,支持本地缓存. 异步加载图片的核心代码如下:  func setZYHWebImage(url:NSString?, defaultImage:NSString?, isCache:Bool){         var ZYHImage:UIImage?         if url == nil {             return   

iOS开发&gt;学无止境 - 异步图片加载优化与常用开源库分析

作者:罗轩(@luoyibu) 网址:http://www.jianshu.com/p/3b2c95e1404f 1. 网络图片显示大体步骤:   下载图片 图片处理(裁剪,边框等) 写入磁盘 从磁盘读取数据到内核缓冲区 从内核缓冲区复制到用户空间(内存级别拷贝) 解压缩为位图(耗cpu较高) 如果位图数据不是字节对齐的,CoreAnimation会copy一份位图数据并进行字节对齐 CoreAnimation渲染解压缩过的位图 以上4,5,6,7,8步是在UIImageView的setImag

ios 图片的两种加载方式

控件加载图片,plist,懒加载,序列帧动画,添加动画效果. IOS中有2种加载图片的方式. 方式一:有缓存(图片所占用的内存会一直停留在程序中) [objc] view plaincopy + (UIImage *)imageNamed:(NSString *)name; 注:必须是png文件.需要把图片添加到 images.xcassets中 例如: [objc] view plaincopy @property (weak, nonatomic) IBOutlet UIImageView