ios动态获取UILabel的高度和宽度

转载 2015年11月19日 14:41:59

在使用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);  

相关文章推荐

动态计算UILabel的高度,宽度,自动换行

// // ViewController.m // Company_Code_动态计算字体高度和宽度 // // Created by 麦子 on 15/8/17. // Copyright ...

iOS--UILabel字体默认宽度和高度

今天发现了UILabel的一个属性:intrinsicContentSize,这个属性能返回UILabel对象的内容宽高(1行文本)。 接着发现UILabel对象的文字宽度是由文字的font属性和文...

ios 文字 控件 自适应 高度 宽度 CustomCell 自适应高度+uilabel自动换行+ UITextView 根据内容自动调整高度

CustomCell 自适应高度+label自动换行+ UITextView 根据内容自动调整高度 TextView在上下左右分别有一个8px的padding,当使用[NSStr...

UILabel 宽度和高度自适应的方法

  • 2015年07月11日 14:49
  • 30KB
  • 下载

iOS NSString 没有去除首尾空格,换行符,空字符--导致UIlabel不能正确计算换行后的动态高度

很多时候我需要计算UIlabel的动态高度,但是往往不注意细节就会出现计算不正确,为什么呢,因为UIlabel的text值有很多空字符,甚至占据了一行,所以开发时设计下一个控件的frame的时候,如果...

iOS笔记UI--固定宽度,根据内容动态改变高度

声明:此为本人学习笔记,若有纰漏错误之处的可留言共同探讨 #import "ViewController.h" #define TEST_TEXT @"这个是测试用的这个是测试用的这个是测试用的这个...

UILabel自动调整大小(高度,宽度)

要设置label的行数为0,注意一点小问题,就是一般情况下计算出来的高度和宽度在应用中还是会出现点问题的[显示偏小],只要在设置高度或者宽度的时候在actualSize的基础上加上3~5像素即可 ...

UILabel根据文本、字体大小计算label宽度;以及自适应高度

想获得所有字体,如下: //获取到所有的字体名称 NSArray *familyNames = [UIFont familyNames]; NSLog(@"所有字体名称--%@",f...

动态获取和设置ImageView的宽度和高度

内某金融企业的一道面试题:如何在代码中获得一个ImageVIew的高度和宽度? 相信很大一部分人,会直接想到用imageview.getWidth() 和 imageview.getHeight...

如何使用代码动态的获取和设置ImageView的宽度和高度?

国内某金融企业的一道面试题:如何在代码中获得一个ImageVIew的高度和宽度? 相信很大一部分人,会直接想到用imageview.getWidth() 和 imageview.getHeight(...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:ios动态获取UILabel的高度和宽度
举报原因:
原因补充:

(最多只允许输入30个字)