计算多行文字,高度展示不对的问题
来源:互联网 发布:数据恢复软件比较 编辑:程序博客网 时间:2024/04/30 03:24
今天是周五,上班时候偷了点懒,没有去学习别人的博客,所以先写一下昨天遇到的小问题,在计算文字高度正确时,展示的UILab出现了高度不够的问题。
首先如题目上所说我在项目中计算了文字代码如下:
CGRect titleRect = [@"款进口大众尚酷款进口大众尚酷款进口大众尚酷款进阿斯顿" boundingRectWithSize:CGSizeMake(300, MAXFLOAT) options:NSStringDrawingUsesLineFragmentOrigin attributes:@{NSFontAttributeName:[UIFont systemFontOfSize:14.]} context:nil]; UILabel *titleLab = [[UILabel alloc] initWithFrame:CGRectMake(10, 0, titleRect.size.width, titleRect.size.height)]; titleLab.numberOfLines = 0; titleLab.backgroundColor = [UIColor redColor]; titleLab.font = [UIFont systemFontOfSize:14.]; titleLab.text = @"款进口大众尚酷款进口大众尚酷款进口大众尚酷款进阿斯顿"; titleLab.textColor = [UIcolors colorWithHexValue:0x3e3a39 alpha:1.]; [self addSubview:titleLab];
得到的是一个CGRect,来供我给我的UILab设置大小,但是因为文字比较多(我的行数已经设置成多行),效果则变成了这样:
原因:
通过打断点观察,titleRect的矩形大小并没有问题,UILab的Frame也没有任何问题,那么哪里为什么会出现,展示文字时,矩形空间不够的情况呢?
想法:
经过后期观察我们发现,单行时如此操作不会出现类似的问题,但是多行时会出现,主要是由于“计算文字大小”这个算法木有计算文字在对象中间隙的问题,所以展示时文字多行本身会自动加上间隙,然而计算时总是少算一行。
解决:
之后发现了,一个非常简单的办法,就是给UILab高度加1,只用加1就好,再多几行也不会有事了。
UILabel *titleLab = [[UILabel alloc] initWithFrame:CGRectMake(10, 0, titleRect.size.width, titleRect.size.height+1)];
改正后的效果:
感谢观看, 学以致用更感谢!
1 0
- 计算多行文字,高度展示不对的问题
- iOS开发动态计算cell高度或UILabel多行文本计算高度、宽度的技巧
- inflate引入的布局高度不对问题
- IOS计算UILabel单行高度、计算UILabel多行文本高度、宽度的技巧,根据文本的高度设置cell高度
- IOS开发中UILabel单行、多行文本计算高度、宽度的技巧
- IOS开发中UILabel单行、多行文本计算高度、宽度的技巧
- IOS开发中UILabel单行、多行文本计算高度、宽度的技巧
- IOS开发中UILabel单行、多行文本计算高度、宽度的技巧
- SwipeRefreshLayout+NestedScrollView时内容的高度计算不对
- UILabel 多行文本及动态计算其高度
- 多行文本固定高度的居中
- ios-cell多行文字高度自适应
- div垂直居中的N种方法 单行/多行文字(未知高度/固定高度)
- div垂直居中的N种方法 单行/多行文字(未知高度/固定高度)
- 文本垂直居中的N种方法 单行/多行文字(未知高度/固定高度)
- div垂直居中的N种方法 单行/多行文字(未知高度/固定高度)
- asp.net中多行文本框高度自适应内容的问题
- 关于Recyclerview的item指定高度却不对的问题
- 使用MySQL统计页面访问及排名
- hadoop 2.6 HdfsServerConstants源代码分析
- redis3.0.6集群安装
- jsp Servlet与Filter
- RxJava 学习笔记二
- 计算多行文字,高度展示不对的问题
- java多线程学习笔记
- C Primer Plus9-1
- 宏正自动科技高端级KVM解决方案获得Solaris Ready认证
- 实现验证码的思路
- C Primer Plus9-2
- LFS进阶版(QT)——GUI界面的实现
- C Primer Plus9-3
- Btspread Search Assistant的诞生