iOS动态获取UILabel的高度和宽度
2015-11-01 17:42
531 查看
在使用UILabel存放字符串时,经常需要获取label的长宽数据,本文列出了部分常用的计算方法。
1.获取宽度,获取字符串不折行单行显示时所需要的长度
CGSize titleSize = [aString sizeWithFont:font constrainedToSize:CGSizeMake(MAXFLOAT, 30)];
注:如果想得到宽度的话,size的width应该设为MAXFLOAT。
2.获取高度,获取字符串在指定的size内(宽度超过label的宽度则换行)所需的实际高度.
CGSize titleSize = [aString sizeWithFont:font constrainedToSize:CGSizeMake(label.frame.size.width, MAXFLOAT) lineBreakMode:UILineBreakModeWordWrap];
注:如果想得到高度的话,size的height应该设为MAXFLOAT。
3.实际编程时,有时需要计算一段文字最后一个字符的位置,并在其后添加图片或其他控件(如info图标),下面代码为计算label中最后一个字符后面一位的位置的方法。
CGSize sz = [label.text sizeWithFont:label.font constrainedToSize:CGSizeMake(MAXFLOAT, 40)];
CGSize linesSz = [label.text sizeWithFont:label.font constrainedToSize:CGSizeMake(label.frame.size.width, MAXFLOAT) lineBreakMode:UILineBreakModeWordWrap];
if(sz.width <= linesSz.width) //判断是否折行
{
lastPoint = CGPointMake(label.frame.origin.x + sz.width, label.frame.origin.y);
}
else
{
lastPoint = CGPointMake(label.frame.origin.x + (int)sz.width % (int)linesSz.width,linesSz.height - sz.height);
}
转自:http://www.cnblogs.com/spiritstudio/archive/2011/11/17/2252074.html
1.获取宽度,获取字符串不折行单行显示时所需要的长度
CGSize titleSize = [aString sizeWithFont:font constrainedToSize:CGSizeMake(MAXFLOAT, 30)];
注:如果想得到宽度的话,size的width应该设为MAXFLOAT。
2.获取高度,获取字符串在指定的size内(宽度超过label的宽度则换行)所需的实际高度.
CGSize titleSize = [aString sizeWithFont:font constrainedToSize:CGSizeMake(label.frame.size.width, MAXFLOAT) lineBreakMode:UILineBreakModeWordWrap];
注:如果想得到高度的话,size的height应该设为MAXFLOAT。
3.实际编程时,有时需要计算一段文字最后一个字符的位置,并在其后添加图片或其他控件(如info图标),下面代码为计算label中最后一个字符后面一位的位置的方法。
CGSize sz = [label.text sizeWithFont:label.font constrainedToSize:CGSizeMake(MAXFLOAT, 40)];
CGSize linesSz = [label.text sizeWithFont:label.font constrainedToSize:CGSizeMake(label.frame.size.width, MAXFLOAT) lineBreakMode:UILineBreakModeWordWrap];
if(sz.width <= linesSz.width) //判断是否折行
{
lastPoint = CGPointMake(label.frame.origin.x + sz.width, label.frame.origin.y);
}
else
{
lastPoint = CGPointMake(label.frame.origin.x + (int)sz.width % (int)linesSz.width,linesSz.height - sz.height);
}
转自:http://www.cnblogs.com/spiritstudio/archive/2011/11/17/2252074.html
相关文章推荐
- Lua中获取table长度问题探讨
- Lua中获取table长度的方法
- js+css使文本框自动适应内容的高度
- C++实现读取图片长度和宽度
- Jquery实现textarea根据文本内容自适应高度
- Jquery跨域获得Json时invalid label错误的解决办法
- jQuery实现等比例缩放大图片让大图片自适应页面布局
- JS获取图片高度宽度的方法分享
- Iframe实现跨浏览器自适应高度解决方法
- js 获取网络图片的高度和宽度的实现方法(变通了下)
- js 为label标签和div标签赋值的方法
- 鼠标拖动动态改变表格的宽度的js脚本 兼容ie/firefox
- JS和jquery获取各种屏幕的宽度和高度的代码
- js获取图片长和宽度的代码
- iOS开发之路--微博“更多”页面
- 用js小类库获取浏览器的高度和宽度信息
- C/C++中获取数组长度的方法示例
- php中count获取多维数组长度的方法
- js和jquery如何获取图片真实的宽度和高度
- CARTA:Gartner的持续自适应风险与信任评估战略方法简介