iPhone:constrainedToSize获取字符串的宽高 自定义label的高度和宽度
2013-10-21 12:48
369 查看
在使用UILabel存放字符串时,经常需要获取label的长宽数据,本文列出了部分常用的计算方法。
1.获取宽度,获取字符串不折行单行显示时所需要的长度
CGSize titleSize = [aString sizeWithFont:font constrainedToSize:CGSizeMake(MAXFLOAT, 30)];
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);
}
1.获取宽度,获取字符串不折行单行显示时所需要的长度
CGSize titleSize = [aString sizeWithFont:font constrainedToSize:CGSizeMake(MAXFLOAT, 30)];
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);
}
相关文章推荐
- iPhone:constrainedToSize获取字符串的宽高 自定义label的高度和宽度
- iPhone:constrainedToSize获取字符串的宽高 自定义label的高度和宽度
- iPhone:constrainedToSize获取字符串的宽高 自定义label的高度和宽度
- iPhone:constrainedToSize获取字符串的宽高 自定义label的高度和宽度
- iPhone:constrainedToSize获取字符串的宽高
- sizeWithFont:constrainedToSize:lineBreakMode的使用 (2012-03-20 10:48:40)转载▼ 标签: 宽度 字符串 获取 指定 用于 杂谈 分类:
- iPhone:constrainedToSize获取字符串的宽高
- iPhone:constrainedToSize获取字符串的宽高
- iPhone:constrainedToSize获取字符串的宽高
- iPhone:constrainedToSize获取字符串的宽高
- iPhone:constrainedToSize获取字符串的宽高
- iPhone:constrainedToSize获取字符串的宽高
- iPhone开发笔记——获取字符串宽度和高度
- iPhone获取字符串高度和宽度 以及UILabel 的换行显示
- 宽度高度sizeWithFont:constrainedToSize:lineBreakMode的使用
- 自定义view中获取字符串的宽度和高度
- 对于单行/多行 字符串文本size的 获取,如何取得文本高度和宽度
- 自动布局下设置Label的宽度和获取Label的高度
- 获取字符串的宽度或者高度来实现控件的宽或者高的自适应
- 关于Android 获取字符串的高度和宽度