ios7 新出来的根据label的文字和字体大小来确定label的宽高。

官方的方法是:

- (CGRect)boundingRectWithSize:(CGSize)size options:(NSStringDrawingOptions)options attributes:(NSDictionary *)attributes context:(NSStringDrawingContext *)context NS_AVAILABLE_IOS(7_0);

其中NSStringDrawingOptions有四个枚举值:

typedef NS_OPTIONS(NSInteger, NSStringDrawingOptions) {

 // 如果文本内容超出指定的矩形限制,文本将被截去并在最后一个字符后加上省略号。如果没有指定NSStringDrawingUsesLineFragmentOrigin选项,则该选项被忽略

    NSStringDrawingTruncatesLastVisibleLine = 1 << 5, // Truncates and adds the ellipsis character to the last visible line if the text doesn't fit into the bounds specified. Ignored if NSStringDrawingUsesLineFragmentOrigin is not also set.

  // 绘制文本时使用 line fragement origin 而不是 baseline origin

    NSStringDrawingUsesLineFragmentOrigin = 1 << 0, // The specified origin is the line fragment origin, not the base line origin

  // 计算行高时使用行距。(译者注:字体大小+行间距=行距)

    NSStringDrawingUsesFontLeading = 1 << 1, // Uses the font leading for calculating line heights

  // 计算布局时使用图元字形(而不是印刷字体)。

    NSStringDrawingUsesDeviceMetrics = 1 << 3, // Uses image glyph bounds instead of typographic bounds

} NS_ENUM_AVAILABLE_IOS(6_0);

attributes是文本字体的属性:该参数要设置字体的大小。

context是上下文对象,用于包含信息:如何调整字间距以及缩放。最终,该对象包含的信息将用于文本绘制。该参数可为 nil。

    NSDictionary *attributes1 = @{NSFontAttributeName:[UIFont systemFontOfSize:],
NSForegroundColorAttributeName:[UIColor redColor]
}; UILabel *titleLabel = [UILabel new];
titleLabel.text = @"德玛西亚万岁,断剑重铸之日,骑士归来之时,我们要以困难的方式搞定他。我本可以打的轻一点!";
titleLabel.numberOfLines = ;//多行显示,计算高度
titleLabel.textColor = [UIColor blackColor];
titleLabel.backgroundColor = [UIColor greenColor];
CGSize titleSize = [titleLabel.text boundingRectWithSize:CGSizeMake(, MAXFLOAT) options:NSStringDrawingUsesLineFragmentOrigin attributes:attributes1 context:nil].size;
titleLabel.frame = CGRectMake(, , titleSize.width, titleSize.height); [self.view addSubview:titleLabel];

效果图如下:

ios7之后 根据UILabel的文字计算frame的方法的更多相关文章

  1. ios uilabel 根据文字 计算宽度 高度

    //根据宽度求高度        + (CGFloat)getLabelHeightWithText:(NSString *)text width:(CGFloat)width font: (CGFl ...

  2. 让UILabel的文字顶部对齐

    参考资料 http://stackoverflow.com/questions/1054558/how-do-i-vertically-align-text-within-a-uilabel 方法一 ...

  3. IOS UI篇—UILabel的文字顶部对齐

    UILabel的文字顶部对齐 NOV 20TH, 2011 默认UILabel是垂直居中对齐的,如果你的UILabel高度有多行,当内容少的时候,会自动垂直居中. 如下图所示(图片来自stackove ...

  4. 关于字符串计算size的方法比较

    往往字符串需要计算size来满足UI排版的自适应的需要,而一般字符串也是放在UILabel里的. 而在计算size的方法里,一般有两种方式(deprecated的就不说了). NSString的方法 ...

  5. php imagick添加文字和图片的方法

    Imagick添加文字和图片的方法<pre><?php $image = new Imagick(); $image->readImage("/home/www/wo ...

  6. 用PS去除图片中文字的6个方法

    转自:http://www.u148.net/article/486.html 1.使用仿制图章工具去除文字. 这是比较常用的方法.具体的操作是,选取仿制图章工具,按住Alt键,在无文字区域点击相似的 ...

  7. 一种基于重载的高效c#上图片添加文字图形图片的方法

    在做图片监控显示的时候,需要在图片上添加文字,如果用graphics类绘制图片上的字体,实现图像上添加自定义标记,这种方法经验证是可行的,并且在visual c#2005 编程技巧大全上有提到,但是, ...

  8. IOS7 点击空白处隐藏键盘的几种方法

    IOS7 点击空白处隐藏键盘的几种方法   iOS开发中经常要用到输入框,默认情况下点击输入框就会弹出键盘,但是必须要实现输入框return的委托方法才能取消键盘的显示,对于用户体验来说很不友好,我们 ...

  9. vue的计算属性与方法的不同

    计算属性 vue的模板里可以使用表达式,但是它的设计初衷是用于简单计算,在模板中放入太多逻辑会让模板过重且难以维护.例如: <div id="example"> {{ ...

随机推荐

  1. 消息队列数量统计(MSMQ,Performance Counter)

    微软消息队列服务MSMQ (Microsoft Message Queue),工作在在线或者离线场景,并提供异步编程功能.互联网和企业开发很多场景应用,例如电商的订单处理流程,这是因为客户端不需要等待 ...

  2. hdu3589 Jacobi symbol(二次剩余 数论题)

    本题的注意点:n=p1*p2*p3......Pm 解法:直接利用公式a^((p-1)/2)=(a/p)mod p 即可求解. #include<stdio.h> #include< ...

  3. DES 算法的 C++ 与 JAVA 互相加解密

    国内私募机构九鼎控股打造APP,来就送 20元现金领取地址:http://jdb.jiudingcapital.com/phone.html内部邀请码:C8E245J (不写邀请码,没有现金送)国内私 ...

  4. linux 下部署 java quartz job

    国内私募机构九鼎控股打造APP,来就送 20元现金领取地址:http://jdb.jiudingcapital.com/phone.html内部邀请码:C8E245J (不写邀请码,没有现金送)国内私 ...

  5. Android动画Animation之Tween用代码实现动画

    透明度动画.旋转动画.尺寸伸缩动画.移动动画 package com.javen.tween; import android.annotation.SuppressLint; import andro ...

  6. 从零开始学android开发-IDE空间不够报错

    E:\ProSoft\adt-bundle-windows-x86-20140321\eclipse目录下 右键eclipse用记事本打开 可以设置运行的最大的运行空间

  7. BZOJ 1143: [CTSC2008]祭祀river 最长反链

    1143: [CTSC2008]祭祀river Time Limit: 1 Sec Memory Limit: 256 MB 题目连接 http://www.lydsy.com/JudgeOnline ...

  8. 把sublime添加到右键菜单(转)

    sublime text是前端利器,为了方便,我们把它加入到win7系统的右键菜单(xp不支持) 保存为bat文件,放入sublimetext安装文件夹与sublime_text同级,双击执行即可. ...

  9. 基于Android 平台简易即时通讯的研究与设计[转]

    摘要:论文简单介绍Android 平台的特性,主要阐述了基于Android 平台简易即时通讯(IM)的作用和功能以及实现方法.(复杂的通讯如引入视频音频等可以考虑AnyChat SDK~)关键词:An ...

  10. [Bootstrap] 2. class 'row' & 'col-md-x' & 'col-md-offset-x'

    Usually when desgin a web page, we think building the page in grid. Bootstrap can help us to do that ...