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

转载于:https://www.cnblogs.com/yuanjunliang/articles/4633107.html

ios动态获取UILabel的高度和宽度相关推荐

  1. 如何动态获取UILabel的高度、宽度

    用于自定义cell中每行内容不同时,获取行高 //这里width固定,就是动态获取行高CGSize fitLabelSize = CGSizeMake(320, MAXFLOAT);//height固 ...

  2. js中动态获取页面的高度和宽度的方法总结

    javascript,jquery获取网页的高度和宽度: javascript: 可视区域宽:document.documentElement.clientWidth(width+padding) 可 ...

  3. 动态获取UILabel的bounds

    动态获取UILabel的bounds 在使用UILabel存放字符串时,经常需要获取label的长宽数据,本文列出了部分常用的计算方法. 1.获取宽度,获取字符串不折行单行显示时所需要的长度  CGS ...

  4. javascript中获取dom元素高度和宽度

    javascript中获取dom元素高度和宽度的方法如下: 网页可见区域宽: document.body.clientWidth 网页可见区域高: document.body.clientHeight ...

  5. js获取div元素高度和宽度的方法

    前端web页面中,js可以很方便的获取div元素的高度和宽度,那么这篇文章就说一说原生JS与JQ如何快速的获取DIV元素的高度和宽度的方法. js获取div元素高度与宽度的方法 js获取div元素的高 ...

  6. React结合虚拟列表VirtualList的动态获取列表项高度问题

    React结合虚拟列表VirtualList的动态获取列表项高度问题: 问题场景:页面查询大量数据的时候结合VirtualList也就是虚拟列表: 例如:手机通讯录查询联系人结合虚拟列表 问题描述: ...

  7. iOS基础 获取状态栏的高度

    由于各代iPhone对屏幕尺寸以及前置摄像头.传感器等的迭代,对于其状态栏的高度也发生了一些微小的变化,不再是如以前的20高度了. 因此在iOS13后,对于状态栏的高度,有这么一个方法可以获取. if ...

  8. 动态计算Gridview的高度,宽度,将GridView居中

    /*** 设置GridView居中* 当父目录是RelativeLayout 需要在GridView设置 android:layout_centerHorizontal="true" ...

  9. ios --- 动态获取键盘高度

    需要手动调用 registerForKeyboardNotifications 方法,其他两个会自动调用,弹出的键盘高 216(输入英文时候),ios 5 系统的 @implementation Vi ...

最新文章

  1. 2020上半年收集到的优质AI文章 – 计算机视觉
  2. svd奇异值分解_矩阵相乘和奇异值分解(SVD)
  3. 算法--------------有效的数独
  4. SQL 2005 收缩事务日志文件
  5. Windows 7备份、还原功能详解
  6. Spring MVC的DispatcherServlet – Java开发人员应该知道的10件事
  7. python一次性输入3个数_python实现输入数字的连续加减方法
  8. C语言数据类型转换详解
  9. Qt工作笔记-QML与C++交互
  10. 喜茶多名员工与外卖小哥互殴 喜茶官方:辞退!
  11. linux登录用户目录,linux命令
  12. 【NOIP2014】【Luogu2118】比例简化(枚举)
  13. 图像处理与计算机视觉经典文章
  14. 搜索引擎算法之同义词、近义词、上位词挖掘
  15. xilinx FPGA IOB约束使用以及注意事项
  16. HDU 4607 Park Visit HDU暑期多校1
  17. 谁在签收您的信用卡挂号信
  18. 【C语言知识梳理之分支语句】
  19. 高速电路设计与仿真之Model Integrity篇(IBIS模型介绍)
  20. 二十四、 修正单纯形法(矩阵运算角度)

热门文章

  1. Google公开C++编码规范
  2. Pixhawk代码分析-姿态解算篇C
  3. HDU-4777 Rabbit Kingdomom(树状数组、区间离线)
  4. 数据处理之判断值是否为nan(空值)记录
  5. pytorch 之 torch.eye()函数
  6. 8086标志寄存器介绍及作用(未完)
  7. Linux线程——线程同步
  8. c++11- Alias Template
  9. android wifi驱动_OTT盒子WiFi方案首选:博通2T2R WiFi模块
  10. 解决Web部署 svg/woff/woff2字体 404错误