textview显示文字不全问题
2015-11-04 09:17
483 查看
由于textview带有超链接,拨打电话,以及识别邮箱功能,还有长按复制等,所以有些时候需要用textview显示文字,自己定义的识别这些的lable不一定比textview好用,
CGRect rect = [eventComment.tContent boundingRectWithSize:CGSizeMake(gScreenWidth - self.tNameFrame.origin.x - MHEventCellImageMargin, MAXFLOAT) options:NSStringDrawingUsesLineFragmentOrigin attributes:@{NSFontAttributeName:Font(16)} context:nil];
但是遇到了非常棘手的问题,比如在特定宽度下,有些文字折行到最后一行后,恰恰剩了一个字,那么这个字就被忽略了,如果按这个测量出来的高度赋值给lable就不会出问题,
话不多说,上代码:
/**
* 计算出合理的高度
*/
- (float) heightForString:(NSString *)value fontSize:(float)fontSize andWidth:(float)width
{
UITextView *detailTextView = [[UITextView alloc]initWithFrame:CGRectMake(0, 0, width, 0)];
detailTextView.font = [UIFont systemFontOfSize:fontSize];
detailTextView.text = value;
CGSize deSize = [detailTextView sizeThatFits:CGSizeMake(width,CGFLOAT_MAX)];
return deSize.height;
}
这个方法出处是csdn,stackoverflow也有类似
CGRect rect = [eventComment.tContent boundingRectWithSize:CGSizeMake(gScreenWidth - self.tNameFrame.origin.x - MHEventCellImageMargin, MAXFLOAT) options:NSStringDrawingUsesLineFragmentOrigin attributes:@{NSFontAttributeName:Font(16)} context:nil];
但是遇到了非常棘手的问题,比如在特定宽度下,有些文字折行到最后一行后,恰恰剩了一个字,那么这个字就被忽略了,如果按这个测量出来的高度赋值给lable就不会出问题,
话不多说,上代码:
/**
* 计算出合理的高度
*/
- (float) heightForString:(NSString *)value fontSize:(float)fontSize andWidth:(float)width
{
UITextView *detailTextView = [[UITextView alloc]initWithFrame:CGRectMake(0, 0, width, 0)];
detailTextView.font = [UIFont systemFontOfSize:fontSize];
detailTextView.text = value;
CGSize deSize = [detailTextView sizeThatFits:CGSizeMake(width,CGFLOAT_MAX)];
return deSize.height;
}
这个方法出处是csdn,stackoverflow也有类似
相关文章推荐
- more efficitive c++(prefix postfix and operator new)
- 自定义ImageView实现拖动,缩放,旋转功能
- 【译】4个你需要知道的Asset Catalog的秘密
- Basic Operation about Linux
- mysql添加远程访问用户
- win10 uac提示框点不了的原因以及解决方法
- Linux文件管理命令
- java正则表达式基础
- 学习笔记2
- 企业固定资产管理用超易固定资产管理软件
- c/c++中的预编译指令总结
- Linux线程池C++封装实现
- 从”JAVA“而终 8:java循环判断语句讲解
- Docker常用指令及使用场景(不定时补充)
- LeetCode 018 4Sum
- Oracle硬解析的几个例子
- 文化-梁晓声
- 分布式 Redis 的 CRUD 实现
- loadrunner接口测试脚本
- 低功耗蓝牙4.0BLE编程-nrf51822开发(2)