Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >UILabel加载html文本

UILabel加载html文本

作者头像
用户1451823
发布于 2018-09-13 07:45:53
发布于 2018-09-13 07:45:53
3.3K0
举报
文章被收录于专栏:DannyHoo的专栏DannyHoo的专栏

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://cloud.tencent.com/developer/article/1337802

最近项目更改需求,要用UILabel加载html文本(leader看了京东、天猫商城要实现其图文详情页面的效果)。笔者在看了那些商城的相应页面之后发现它们的实现方式并不是利用UILabel加载html文本的方法。本人感觉UILabel加载html文本并不好,现在有WKWebView是比较好用的。即使不用WKWebView也可以返回JSON数据,在客户端这边进行布局。之所以利用UILabel加载html文本,leader们是希望能够图文混排。既然会出现图片,那么用户就可能点击图片放大图片看些内容,然而利用UILabel加载的html文本显示的图片不能点击(目前笔者没有能点击UILabel上图片的方法)。

leader既然要求,那我这个“搬砖的”也只能埋头“搬砖”了。

代码:

NSMutableAttributedString * desStr = [NSMutableAttributedString alloc initWithData:str dataUsingEncoding:NSUnicodeStringEncoding options:@{NSDocumentTypeDocumentAttribute: NSHTMLTextDocumentType} documentAttributes:NULL error:nil];

_detailLbl.attributedText =desStr;

这里利用了UILabel上的富文本属性。这样做了之后还有一点很重要,那就是设置UILabel的高度。同样是自适应Label高度,让UILabel的高度根据html文本内容来设置UIlabel的高度。代码:

NSMutableAttributedString * desStr = [NSMutableAttributedString alloc initWithData:str dataUsingEncoding:NSUnicodeStringEncoding options:@{NSDocumentTypeDocumentAttribute: NSHTMLTextDocumentType} documentAttributes:nil error:nil];

CGRect desRect = desStr boundingRectWithSize:CGSizeMake(WIDTH - 30 * IPHONE6_W_SCALE, MAXFLOAT) options:NSStringDrawingUsesLineFragmentOrigin context:nil;

CGFloat h = desRect.size.height;

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2016年11月14日,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
iOS开发·runtime+KVC实现多层字典模型转换(多层数据:模型嵌套模型,模型嵌套数组,数组嵌套模型)
更重要的是,有时候在iOS面试的时候,部分面试官会不仅问你某种场景会用到什么框架,更会问你如果要你来实现这个功能,你有没有解决思路?所以,自己实现字典转模型还是有必要掌握的。有了这个基础,在利用运行时runtime的动态特性,你也可以实现这些第三方框架。
陈满iOS
2018/09/10
2.8K0
iOS开发·runtime+KVC实现多层字典模型转换(多层数据:模型嵌套模型,模型嵌套数组,数组嵌套模型)
Objective-C Runtime 的一些基本使用
在上一篇文章《Objective-C Runtime详解》中我们探讨了Runtime的基本原理,这篇文章我们将总结一下Runtime的一些基本使用 目录 查询方法 给分类添加属性 更换代码的实现方法 动态添加方法 字典转属性 先创建两个类 ClassA.h #import <Foundation/Foundation.h> @interface ClassA : NSObject { // 公有变量 NSString *_publicVar1; NSString *_publ
BY
2018/05/11
1.2K0
iOS 开发:『Runtime』详解(四)获取类详细属性、方法
文中示例代码在: bujige / YSC-Class-DetailList-Demo
程序员充电站
2019/08/02
3.1K0
RunTime 之其他实践运用
有关Runtime的知识总结,我本来想集中写成一篇文章的,但是最后发现实在是太长,而且不利于阅读,最后分成了如下几篇:
進无尽
2018/09/12
1K0
RunTime 之其他实践运用
一种自动的将自定义类序列化为JSON的方法
最近因为项目需求,需要将一些自定义的类序列化为JSON,网上有很多好用的第三方序列化工具,但都只能自动序列化一些基本类型,如NSNumber,NSString与NSDictionary这种,没有一种第三方工具提供直接将自定义类序列化的方法(至少据我所知:),而对于这种序列化自定义的类的需求,网上能查到的方法只有将自定义的类手动的转存为一个NSDictionary,然后再使用第三方工具来序列化。例如对于一个类Foo,有如下定义: @interface Foo : NSObject {   NSStri
阿新
2018/04/12
1.2K0
iOS runtime探究(三): 从runtime开始理解OC的属性property你要知道的runtime都在这里
你要知道的runtime都在这里 转载请注明出处 https://cloud.tencent.com/developer/user/1605429 本文主要讲解runtime相关知识,从原理到实践,由于包含内容过多分为以下五篇文章详细讲解,可自行选择需要了解的方向: 从runtime开始: 理解面向对象的类到面向过程的结构体 从runtime开始: 深入理解OC消息转发机制 从runtime开始: 理解OC的属性property 从runtime开始: 实践Category添加属性与黑魔法method sw
WWWWDotPNG
2018/04/10
1.2K0
Runtime系列(二)--Runtime的使用场景
Runtime 理解介绍的文章非常多,我只想讲讲Runtime 可以用在哪里,而我在项目里哪些地方用到了runtime。多以实际使用过程为主,来介绍runtime的使用。
Haley_Wong
2018/08/22
1.7K1
Runtime系列(二)--Runtime的使用场景
iOS_Runtime、method swizzing (俗称黑魔法) 一
本文举例说明Runtime的一下几个用途: 1、拦截并替换方法 2、给分类添加属性 3、字典转模型 4、动态添加方法,处理一个未实现方法和去除报错 5、动态设置变量的值,可设置私有属性 6、实现NSCoding协议,完成归档和解档 7、获取属性、成员变量、方法(类/实例)、协议 8、添加方法、替换原方法、交换方法 9、动态添加方法 1、在分类为系统方法添加功能 例:输出UIImage imageNamed: 图片加载成功与否 #import "UIImage+image.h" #import <objc/r
mikimo
2022/07/20
4310
Objc Runtime 总结
Objc Runtime使得C具有了面向对象能力,在程序运行时创建,检查,修改类、对象和它们的方法。Runtime是C和汇编编写的,这里http://www.opensource.apple.com/source/objc4/可以下到苹果维护的开源代码,GNU也有一个开源的runtime版本,他们都努力的保持一致。苹果官方的Runtime编程指南
用户7451029
2020/06/16
8470
Objective-C Runtime编程指南(2)
苹果官方文档Objective-C Runtime Programming Guide
Helloted
2022/06/06
3220
Objective-C Runtime编程指南(2)
OC最实用的runtime总结,面试、工作你看我就足够了!前言什么是runtime?如何应用运行时?
前言 runtime的资料网上有很多了,部分有些晦涩难懂,我通过自己的学习方法总结一遍,主要讲一些常用的方法功能,以实用为主,我觉得用到印象才是最深刻的,并且最后两个demo也是MJExtension的实现原理,面试的时候也可以多扯点。 另外runtime的知识还有很多,想要了解更多可以看我翻译的官方文档(有点枯燥),本文的demo下载地址 什么是runtime? runtime 是 OC底层的一套C语言的API(引入 <objc/runtime.h> 或<objc/message.h>),编译器最终都会
用户2141756
2018/05/18
1.4K0
[Objective-C Runtime] 成员变量与属性
在上篇文章[Objective-C Runtime] 类与对象详细讲解了Runtime机制对于类和对象相关处理,今天继续讲解一下Runtime在成员变量和属性上的处理方法和策略。 成员变量(Ivar)的数据结构 在Objective-C中,成员变量即Ivar类型,是指向结构体struct objc_ivar的指针,在Objc/runtime.h 中查到,如下所示: typedef struct objc_ivar *Ivar; 结构体struct objc_ivar的数据结构如下所示: struct o
Jacklin
2018/05/15
2.1K0
RunTime 之常规操作
有关Runtime的知识总结,我本来想集中写成一篇文章的,但是最后发现实在是太长,而且不利于阅读,最后分成了如下几篇:
進无尽
2018/09/12
6320
RunTime 之常规操作
Objective-C Runtime:深入理解成员变量与属性
在上篇文章Objective-C Runtime:深入理解类与对象中,讲解了类与对象的相关内容。
Jacklin999
2018/09/12
8310
Runtime 创建动态一个类 添加成员变量 属性
这篇文章主要介绍OC Runtime怎么动态创建类,添加成员变量,添加属性,对象动态绑定keyValue,添加方法。 (主要介绍成员变量和属性) 对于概念还不理解的可以看之前的博客。代码说的再多不如自己写一遍,写过之后肯定有不同的理解。好脑子不如烂笔头,没有什么概念要说的,代码里有注释,下面直接上代码。
星宇大前端
2019/01/15
1.7K0
神经病院 Objective-C Runtime 出院第三天——如何正确使用 Runtime
到了今天终于要"出院"了,要总结一下住院几天的收获,谈谈Runtime到底能为我们开发带来些什么好处。当然它也是把双刃剑,使用不当的话,也会成为开发路上的一个大坑。
一缕殇流化隐半边冰霜
2018/08/30
1.5K0
神经病院 Objective-C Runtime 出院第三天——如何正确使用 Runtime
iOS RunTime你知道了总得用一下
说点题外话: 我刚来现在这家公司的时候,老板让我下载一个脉脉,上去找找自己的同行,多认识些同行。其实初衷的好的,但最近这两天我把它卸载了,不为别的,负能量太多!iOS这行自从2016就没景气过,在这行混,这些自己也肯定都知道。但就是受不鸟铺天盖地的多久没找到工作,满大街都是iOS程序猿这些话题。看了也给我带不来任何的作用,你唯一能做的就是安安静静的做好自己该做的。自己入iOS这行也一年半过了,除去培训的那个几个月,真正摸爬滚打也一年多了,有时候想想,其实也没觉得有多差,以后怎样不知道,但至少现在,你有份工
Mr.RisingSun
2018/01/09
5830
iOS RunTime你知道了总得用一下
iOS运行时Runtime应用
在上篇文章iOS运行时Runtime基础后,本篇将会总结Rutime的具体应用实例,结合其动态特性,Runtime在开发中的应用大致分为以下几个方面: Runtime应用.png 相关文章:iOS运行
梧雨北辰
2018/07/11
1.4K0
oc runtime
Person *p = objc_msgSend(objc_getClass("Person"), sel_registerName("alloc"));
conanma
2021/05/11
6310
NSObject头文件解析 / 消息机制 / Runtime解读 (一)
上面是NSObject对象的头文件类部分, 可以看到还有一个NSObject protocol 我们也仔细看看都有什么协议方法@protocol NSObjec
周希
2019/10/15
1.3K0
推荐阅读
相关推荐
iOS开发·runtime+KVC实现多层字典模型转换(多层数据:模型嵌套模型,模型嵌套数组,数组嵌套模型)
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档