ios html高度自适应,iOS UILabel高度自适应终结篇

释放双眼,带上耳机,听听看~!

网上大部分的boundingRectWithSize和sizeWithFont 计算出来的宽高在某些有特殊情况下(如链接中有n等等)计算出来的还是有偏差不准,此时用NSAttributedString和label的attributedText计算会迎刃而解

1.给model的.h文件添加一个NSAttributedString属性

/**    带有属性的(特殊文字会高亮显示显示表情) */

@property (nonatomic, copy) NSAttributedString *attributedText;

2..m重写text的set方法

//重写set

- (void)setMessageStr:(NSString *)messageStr

{

_messageStr = messageStr;

//计算出attributedText

NSMutableAttributedString *attrString = [[NSMutableAttributedString alloc] initWithString:messageStr];

[attrString addAttribute:NSFontAttributeName value:[UIFont systemFontOfSize:16] range:NSMakeRange(0, messageStr.length)];

_attributedText = attrString;

}

3.cell.m文件

//用attributedText解决有时高度计算不准的bug

self.contentL.attributedText = privateLetterMyModel.attributedText;

//最终计算出来的准确的size

CGSize frame = [self.contentL.attributedText boundingRectWithSize:CGSizeMake(ScreenWidth - 120, MAXFLOAT) options:NSStringDrawingUsesLineFragmentOrigin context:nil].size;

4.viewController中计算cell高度

- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath

{

TestModel *model = self.dataArr[indexPath.row];

CGSize frame = [CalculateSize sizeForNoticeTitle:model.messageStr font:[UIFont systemFontOfSize:16] maxW:  ScreenWidth - 120];

CGSize frame = [model.attributedText boundingRectWithSize:CGSizeMake(ScreenWidth - 120, MAXFLOAT) options:NSStringDrawingUsesLineFragmentOrigin context:nil].size;

return frame.height ;

}

5.从服务器用mdel.text获取数据(以为重写了setText方法所以会自动获取attributedText)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/472414.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

HiveQL: 数据操作

文章目录1. 向管理表中装载数据2. 通过查询语句向表中插入数据3. 动态分区插入4. 从单个查询语句创建表并加载数据5. 导出数据学习自《Hive编程指南》 1. 向管理表中装载数据 hive (default)> load data local inpath "/home/hadoop/workspace/student.txt">…

formdata.append加多个值_redis的五种数据结构和应用场景:微博微信点赞+加购物车等...

Redis五种数据结构如下:1.String 字符串类型是redis中最基本的数据类型,一个key对应一个value。String类型是二进制安全的,意思是 redis 的 string 可以包含任何数据。如数字,字符串,jpg图片或者序列化的对象。2.Hash …

bakaxl启动器怎么导入整合包_bakaxl启动器加皮肤光影mod

bakaxl启动器加皮肤光影mod是一款超级有趣的像素风格的冒险类的手游哦,此次为玩家带来的是不一样的游戏模组哦,在这里玩家可以拥有超级多的任务可以进行,你可以随时开启地图探索哦,你还可以将全新获得的材质包加入其中&#xff0c…

iOS开发-自动隐藏键盘及状态栏

1.隐藏状态栏 iOS升级至7.0以后,很多API被废止,其中原有隐藏状态栏StatusBar的方法就失效了。 原有方案 [[UIApplication sharedApplication] setStatusBarHidden:YES]; 但很不幸,在后来的版本中实效了,因此我们可以使用新的API来…

python gevent模块 下载_【python安全攻防】包、模块、类、对象

终于又到了一周一度的整理博客的时间了,博主平时课余时间看书,周末统一整理,坚持周更真是爱了爱了 ~今天要说的是python面向对象这一部分的内容,今天这是基础篇的第二篇,也是最后一篇。说来基础篇还真是少呢…

LeetCode LCP 33. 蓄水(暴力枚举)

文章目录1. 题目2. 解题1. 题目 给定 N 个无限容量且初始均空的水缸,每个水缸配有一个水桶用来打水,第 i 个水缸配备的水桶容量记作 bucket[i]。小扣有以下两种操作: 升级水桶:选择任意一个水桶,使其容量增加为 buck…

svr公式推导_ML-支持向量:SVM、SVC、SVR、SMO原理推导及实现

目录1.导出目标2拉格朗日转换3对偶问题:因为是希望得出L最小时的一些参数w,b,a,但是目前很难一起求得最佳参数,所以换个思路。因为:所以能够容易的计算出拉格朗日乘子a约束时的最坏情况是:但是m个a的值还是无法求出&am…

302状态码_你见过 HTTP 哪些状态码?

❝好久没有写技术文章,今天在四川广元无事,总结一篇。附一张今天早上在嘉陵江遇见的白鹡鸰 (不是我拍的)❞白鹡鸰101 Switch Protocol200 Ok201 Created204 No Content206 Partial Content301 Moved Permanently302 Found304 Not Modified307 Temporary …

羽毛球 机器人 Robocon 2015 泰国预选赛(全国大学生机器人竞赛)

羽毛球 机器人 Robocon 2015 泰国预选赛(全国大学生机器人竞赛) 我把视频传我的优酷上了, 大家可以看看 http://i.youku.com/pomodori posted on 2015-02-04 11:26 rex686568 阅读(...) 评论(...) 编辑 收藏 转载于:https://www.cnblogs.com/Pomodori/p/4316622.html

山西大学计算机应用专业,山西大学计算机应用技术专业

在主要课程学完并确定论文题目后,研究生撰写论文的时间为一年半至两年。(一)论文选题的要求1. 选题必须有一定的理论意义或应用价值论文选题必须对国民经济建设或在学术上有一定的价值。2.国内外研究动态论文选题时,学生必须掌握与该课题有关…

LeetCode LCP 34. 二叉树染色(树上DP)

文章目录1. 题目2. 解题1. 题目 小扣有一个根结点为 root 的二叉树模型,初始所有结点均为白色,可以用蓝色染料给模型结点染色,模型的每个结点有一个 val 价值。 小扣出于美观考虑,希望最后二叉树上每个蓝色相连部分的结点个数不能…

uart口图片_uart 加强了的串口调试助手,可以自动记录传输数据,并且显示图片,示波器等功能 Com Port 编程 267万源代码下载- www.pudn.com...

文件名称: uart下载 收藏√ [5 4 3 2 1 ]开发工具: C#文件大小: 10479 KB上传时间: 2014-06-06下载次数: 62提 供 者: 林元峰详细说明:加强了的串口调试助手,可以自动记录传输数据,并且显示图片,示波器等功能-Enhanced seri…

delphi 串口通信发送_关于串口通信232、485、422和常见问题,就没见过能讲这么清楚的...

先讲串口通信的一些基本概念,术语。如果对串口通信比较熟悉的,就当复习,如果哪里讲的不到位,欢迎及时指出。这里并不对串口的编程作讲解,主要是从应用的角度去讲一讲。因为更多的时候,都是产品做好了&#…

LeetCode 1822. 数组元素积的符号

文章目录1. 题目2. 解题1. 题目 已知函数 signFunc(x) 将会根据 x 的正负返回特定值: 如果 x 是正数,返回 1 。如果 x 是负数,返回 -1 。如果 x 是等于 0 ,返回 0 。 给你一个整数数组 nums 。 令 product 为数组 nums 中所有元…

快速替换图片的组合-AE-样片!

模板下载网址:http://pan.baidu.com/s/1hqCbErM转载于:https://www.cnblogs.com/nedtwo/p/4278337.html

南昌理工学院计算机网络技术专业怎么样,南昌理工学院怎么样 重点专业是什么...

毕业季即将来临,报考的时候同学们和家长朋友们最关心的就是学校好不好的问题,想要了解学校有哪些特色专业、师资力量怎么样。下面小编整理了南昌理工学院的信息,供大家参考。南昌理工学院重点专业国家级特色专业:计算机科学与技术…

英特尔cpu发布时间表_英特尔10nm芯片开始大规模出货,先进制程时间表浮出水面...

多年延期之后,英特尔终于宣布其 10nm 芯片产品开始大量出货。近日,英特尔公布了公司 2019 年 Q3 财报。在财报会议中,英特尔透露了这一消息。具体而言,英特尔已有晶圆厂开始大批量生产 10nm 芯片,未来也还准备建立新厂…

matplotlib绘图_使用matplotlib库绘图

本代码演示对列表元素进行绘图并可视化代码如下:import matplotlib.pyplot as plt #导入matplotlib绘图库,并设置简称为pltlist1[i*2 for i in range(1,10)] #遍历range(1,10)里的元素,并每个乘以2,并将最终的列表赋值给list1plt.…

LeetCode 1824. 最少侧跳次数(DP)

文章目录1. 题目2. 解题1. 题目 给你一个长度为 n 的 3 跑道道路 ,它总共包含 n 1 个 点 ,编号为 0 到 n 。 一只青蛙从 0 号点第二条跑道 出发 ,它想要跳到点 n 处。然而道路上可能有一些障碍。 给你一个长度为 n 1 的数组 obstacles &a…

i5集显和独显的区别_集显核显独显有哪些区别 集显核显独显区别介绍【详解】...

显卡是除处理器之外最受大家关心的硬件装备了,要是显卡配置不到位,其他再好都是浮云,而对于游戏玩家来说,显卡性能差的话更是影响游戏的运行,可折腾人了。今天小编为大家分享“集显”、“核显”和“独显”这3个显卡概念…