得到UILable在设置字体样式后的真实长度

转载 2015年07月08日 17:35:20
在用代码创建UI时,首先就是要创建UIframe,一般的控件在创建时都会调用如下函数:initWithFrame:(CGRect)frame.在取frame的时候有几种情况,一是你已知当前控件在父视图中的绝对位置,你可以直接输入坐标位置及大小就可以创建了。还有一种就是在已知控件的基础上做参考,来计算自己的坐标位置。我在工作中就遇到了一个这样问题:我有一个cellcell上显示了标题(标题是显示是用的UILabel,我想根据需求在标题后添加一个标识图片。这个图片的位置不确定就需要我们计算出来。我使用的就是第二种方法,以已知的标题坐标来得到标识图片的坐标。得到标题的坐标很简单,可以用cell.titleLabel.frame来得到标题的坐标位置。那么要在标题后显示标识图片,还需要知道titleLabel的宽度。这样titleLabel 的初始坐标+titleLabel的宽度,就是在titleLabel的尾部坐标,在这个位置就是标识图片的坐标了。现在的问题是如何取titleLabel的宽度呢?由于我们可以对UILabel设置字体大小加粗等行为,使得UILabel的宽度并非是文字的长度。这就需要我们另想办法。还好,ios 已经我们想到了这点,我们可以调用一个函数来得到UILabel在设置字体大小加粗后的真实宽度:
CGSize labelSize=[cell.titleLabel.text sizeWithFont:cell.titleLabel.font   
             
constraninedToSize:CGSizeMake(FLT_MAX,FLT_MAX)
 
             
lineBreakMode:UILineBreakModeWordWrap];
这样labelSize.width就是这个titleLable的真实宽度,在得到这个宽度后我们就可以计算出标识图片的位置。

UILable属性详解,设置居上对齐,居中对齐,居下对齐,获取斜体字,字体、大小、单位、颜色

原文地址:http://segmentfault.com/a/1190000003491677 ·常用属性和方法有: 1、创建 CGRect rect = CGRectMake(100, 2...

UILable的字体位置设置(上、中、下等)

随心随意的改变UIlabel中的字体位置,不需要设置太多。几行代码就能满足你的需求。...

UI中UILable字体表

主要内容 FontListViewController *fontListVC = [[FontListViewController alloc] initWithStyle:UITableView...

UILable自适应字体大小、自适应lable宽高

有时候给UIlable文字之后在小屏幕上发现文字由于太长显示不全,出现省略号 就像这种情况 有两种效果可以修改这种情况 第一种情况就是:lable宽度变大,字体大小不变化,效果就是这样: 如...

IOS开发得到所有的字体样式

ios的提供了很多的字体样式。有时候我们在开发应用的时候可能用到不同的字体,通过此Demo我们可以获取到所有的字体样式供我们选择。 首先获取字体字体族科名字,再通过族科的名字获取到字体的名字。 ...

android 关于app内设置字体样式的研究

昨日, 产品经理:看着app中的文字,突然问我你这里面啥字体,是微软雅黑吗? 我:不是啊,android自带的字体啊,默认的。 产品经理:可以设置为微软雅黑吗? 我:我研究下。1.androi...

MFC 控件字体样式和颜色设置

因为默认的字体大小比较小,且有时为了美观,MFC控件的字体样式更改有时显得比较重要。这一修改并不是很直观,需要经由代码来完成,代码如下: CFont *m_pFont;//创建新的字体 m_pFont...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:得到UILable在设置字体样式后的真实长度
举报原因:
原因补充:

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