iOS依据字符串计算UITextView高度
iOS计算字符串高度,有须要的朋友能够參考下。
方法一:ios7.0之前适用
/**
@method 获取指定宽度width,字体大小fontSize,字符串value的高度
@param value 待计算的字符串
@param fontSize 字体的大小
@param Width 限制字符串显示区域的宽度
@result float 返回的高度
*/
- (float) heightForString:(NSString *)value fontSize:(float)fontSize andWidth:(float)width
{
CGSize sizeToFit = [value sizeWithFont:[UIFont systemFontOfSize:fontSize]
constrainedToSize:CGSizeMake(width -16.0, CGFLOAT_MAX)
lineBreakMode:NSLineBreakByWordWrapping];
//此处的换行类型(lineBreakMode)可依据自己的实际情况进行设置
return sizeToFit.height + 16.0;
}
方法二:ios7.0及之后适用
/**
@method 获取指定宽度width,字体大小fontSize,字符串value的高度
@param value 待计算的字符串
@param fontSize 字体的大小
@param Width 限制字符串显示区域的宽度
@result float 返回的高度
*/
- (float) heightForString:(NSString *)value andWidth:(float)width{
//获取当前文本的属性
NSAttributedString *attrStr = [[NSAttributedString alloc] initWithString:value];
_text.attributedText = attrStr;
NSRange range = NSMakeRange(0, attrStr.length);
// 获取该段attributedString的属性字典
NSDictionary *dic = [attrStr attributesAtIndex:0 effectiveRange:&range];
// 计算文本的大小
CGSize sizeToFit = [value boundingRectWithSize:CGSizeMake(width - 16.0, MAXFLOAT) // 用于计算文本绘制时占领的矩形块
options:NSStringDrawingUsesLineFragmentOrigin | NSStringDrawingUsesFontLeading // 文本绘制时的附加选项
attributes:dic // 文字的属性
context:nil].size; // context上下文。包括一些信息,比如怎样调整字间距以及缩放。 该对象包括的信息将用于文本绘制。 该參数可为nil
return sizeToFit.height + 16.0;
}
//注意:再前两种方法中,UITextView在上下左右分别有一个8px的padding,须要将UITextView.contentSize.width减去16像素(左右的padding 2 x 8px)。同一时候返回的高度中再加上16像素(上下的padding)。这样得到的才是UITextView真正适应内容的高度。如代码中
CGSizeMake(width -16.0, CGFLOAT_MAX),return sizeToFit.height + 16.0。
UILable中则不用
方法三:通用(推荐)
/**
@method 获取指定宽度width的字符串在UITextView上的高度
@param textView 待计算的UITextView
@param Width 限制字符串显示区域的宽度
@result float 返回的高度
*/
- (float) heightForString:(UITextView *)textView andWidth:(float)width{
CGSize sizeToFit = [textView sizeThatFits:CGSizeMake(width, MAXFLOAT)];
return sizeToFit.height;
}
iOS依据字符串计算UITextView高度的更多相关文章
- iOS开发 准确计算Coretext高度
- (int)getAttributedStringHeightWithString:(NSAttributedString *) string WidthValue:(int) width{ ...
- iOS中动态计算不同颜色、字体的文字高度
在改项目bug的时候,有一个问题动态计算label的高度,前开发者竟然用字符串长度除以14.16这样的常量来计算是否换行,结果cell的高度问题非常严重. 因为label内容里有部分关键字是要另一种颜 ...
- ios swift UITextView高度自适应
在ios开发中,用到多行输入时一般都会用到UITextView.常见的比如说聊天输入框,评论输入框等,当用户输入多内容时,我们希望高度能根据用户输入的内容扩大而扩大.其实实现这个功能也不是很难,只需要 ...
- ios 根据文字数量计算UILabel高度(已修改)
由于留言的朋友给出了更好的方法,所以下面的代码都是它留言中给出的,优于我前面计算Lable高度方法,这个可以说非常的准,是IOS自带的计算UILABEL高度的方式. 一.实现代码 // 创建label ...
- iOS 学习 - 11.圆角(小于等于四个)类似气泡和计算字符高度
使用贝塞尔曲线, // 小于四个角 圆角 -(void)setbor{ NSString *str = @" couldn't fit this all in a comment to @l ...
- 转:动态计算UITableViewCell高度详解
转自:http://www.cocoachina.com/industry/20140604/8668.html 不知道大家有没有发现,在iOS APP开发过程中,UITableView是我们显示 ...
- 动态计算UITableViewCell高度详解 (转)
感觉挺有用的一篇文章,分析了4种解决方案.回头测试之.如果有别的方案,我会在后面补上. 原文地址:http://www.ifun.cc/blog/2014/02/21/dong-tai-ji-suan ...
- 动态计算UITableViewCell高度详解
本文将介绍四种情况下UITableViewCell的计算方式,分别是: Auto Layout with UILabel in UITableViewCell Auto Layout with UIT ...
- 动态计算UITableViewCell高度
动态计算UITableViewCell高度 UILabel in UITableViewCell Auto Layout - UILabel的属性Lines设为了0表示显示多行.Auto Layout ...
随机推荐
- Qt浅译:JSON Support in Qt(JSON只有六种数据类型)
JSON Support in Qt Qt5之后开始提供对处理JSON数据的支持,JSON是一种Interter数据交换的数据格式. JSON 用于存储结构化的数据,JSON有6种基本数据类型 ...
- spring Annotation 笔记2.1
使用注解替代xml 在前几章的笔记基础上添加使用注解的形式 1.配置applicationContext 添加context schema <?xml version="1.0&quo ...
- repeater一个简单的用法例子
(前台) <asp:Repeater ID="Repeater1" runat="server" onitemdatabound=" ...
- Python web框架有哪些
简单易学的web.py, 大型的django:文档最完善.市场占有率最高.招聘职位最多. Tornado 具体看:http://feilong.me/2011/01/talk-about-python ...
- Ubuntu安装Adobe Reader
到 这里依次选择最新版本的Adobe Reader,我选择目前最新的 9.5.5版本的,下载下来后,双击选择dep包,启动软件中心进行安装,中间会提示软件包欠佳,选择" ...
- Hdu 3371 Connect the Cities(最小生成树)
地址:http://acm.hdu.edu.cn/showproblem.php?pid=3371 其实就是最小生成树,但是这其中有值得注意的地方:就是重边.题目没有告诉你两个城市之间只有一条路可走, ...
- L型代码结构案例:Link访问权限(上)
这是松结对编程的第20篇(专栏目录). 本文探讨Link访问权限的最佳实现方法,力求外观干净且封装良好. 这些代码将位于L型代码结构(参见松结对编程系列中的定义)的下层,调用者无需理解其原理. 顺便说 ...
- Android 开机动画源码分析
Android系统在启动SystemServer进程时,通过两个阶段来启动系统所有服务,在第一阶段启动本地服务,如SurfaceFlinger,SensorService等,在第二阶段则启动一系列的J ...
- UIAlertView、UIActionSheet兼容iOS8
链接地址:http://blog.csdn.net/nextstudio/article/details/39959895?utm_source=tuicool 1.前言 iOS8新增了UIAlert ...
- 循环调用修正sic86
create or replace procedure rebuild_sic86_wyl(pi_aac001 in number, po_fhz out varchar2, po_msg out v ...