转自:http://i.cnblogs.com/EditPosts.aspx?opt=1

1、创建方法:
+ fontWithName:size:
- fontWithSize:
2、创建系统字体:
+ systemFontOfSize:
+ boldSystemFontOfSize:
+ italicSystemFontOfSize:
3、获得可用的Font Names:
+ familyNames
+ fontNamesForFamilyName:
4、获得Font Name属性:
familyName 属性 和 fontName属性
5、获得Font Metrics:
pointSize属性:
ascender属性:基准线以上的最高y坐标。
descender属性:基准线以下的最低y坐标
capHeight属性:The receiver’s cap height information 接收者的大写高度信息??
xHeight属性:返回小写x的高度
lineHeight属性:文本行的高度
6、获得系统字体信息:
+ labelFontSize:
+ buttonFontSize:
+ smallSystemFontSize:
+ systemFontSize:

所以,一般来说要用UILabel显示文本内容,而计算高度的话,使用font.lineHeight*行数就可以了。当然这需要每一行的长度不能超过label的长度。
如果这仍然难以控制,可以使用string的
– sizeWithFont:  
– sizeWithFont:forWidth:lineBreakMode:  
– sizeWithFont:constrainedToSize:  
– sizeWithFont:constrainedToSize:lineBreakMode:  
– sizeWithFont:minFontSize:actualFontSize:forWidth:lineBreakMode:
这些方法来测量字符串所占的CGSize。
通过– sizeWithFont:constrainedToSize:lineBreakMode:  这个可以方法,可以指定一个比较大的constrainedSize,来计算字符串的实际高度,例如:

然后计算Label的实际行数,以决定Label的高度:
    UILabel *label1=[[UILabel alloc]initWithFrame:CGRectMake(0, 200, 200, 1)];
    label1.text=@"我会根据字符串的长度计算行数,并动态设置label1的高度!不信就试试看看?\r\n好的,让我们来看看吧!!!!!!!!!!!!!!!!!";
    label1.lineBreakMode=UILineBreakModeCharacterWrap;
    label1.numberOfLines=0;

    CGRect rect=label1.frame;
    CGSize testSize=tempRect.size;
    testSize.height=testSize.height*1000;
    tempRect.size=[[label1 text] sizeWithFont:label1.font constrainedToSize:testSize lineBreakMode:NSLineBreakByCharWrapping]; 
    label1.frame=rect;

关于UIFont和计算字符串的高度和宽度的更多相关文章

  1. css3动态计算元素的高度及宽度

    1.px     像素,我们在网页布局中一般都是用px. 2.百分比     百分比一般宽泛的讲是相对于父元素,自适应网页布局越来越多,百分比也经常用到了 3.Viewport 当已知一个div的高度 ...

  2. 计算文字的高度和宽度--以微博会话界面中用户名(userName)为例

    所用方法 // NOTE: All of the following methods will default to drawing on a baseline, limiting drawing t ...

  3. iOS计算字符串的宽度高度

    OC开发中会遇到根据字符串和字体大小来算计算出字符串所占的宽高->> 封装方法如下: #import <Foundation/Foundation.h> #import < ...

  4. iOS7中计算UILabel中字符串的高度

    iOS7中计算UILabel中字符串的高度 iOS7中出现了新的方法计算UILabel中根据给定的Font以及str计算UILabel的frameSize的方法.本人提供category如下: UIL ...

  5. iOS中计算字符串NSString的高度

    根据固定宽度计算字符串高度: NSString *info = @"但是公司的高度是广东省公司的广东省高速度来开个大帅哥多撒谎个爱好就跟他说噶三公司噶是的刚好是我哥如果黑暗如果坏都干撒降低公 ...

  6. iOS-动态计算Label的高度

    一. 要求 1.根据网络请求的回来的字符串内容,动态计算Label的高度. 二. 注意点 1. 要注意设置label 的 numberOfLines 为0; 2. MAXFLOAT 的作用. 设置高度 ...

  7. swift-自动计算字符串的宽高

    写一个方法来继承String //自动控制文字换行及宽度 extension String { func textSizeWithFont(font: UIFont, constrainedToSiz ...

  8. iOS计算完整文字高度(适应iOS 10)

    动态计算文字的高度:(切记LineSapcing>=2,不然会显示不全) +(CGSize) boundingALLRectWithSize:(NSString*) txt Font:(UIFo ...

  9. iOS不得姐项目--精华模块上拉下拉的注意事项,日期显示,重构子控制器,计算cell的高度(只计算一次),图片帖子的显示

    一.上拉下拉注意事项 使用MJRefresh中的上拉控件自动设置透明 当请求下页数据通过page的时候,注意的是上拉加载更多数据失败的问题,下拉加载数据失败了,页数应该还原.或者是请求成功的时候再将页 ...

随机推荐

  1. Javascript 数字保留2位小数

    整理使用Javascript函数将数值保留两位小数: 1.num.toFixed(2) //进位 2.(Math.round(num * 100) / 100).toFixed(2) //进位 3.( ...

  2. Eclipse主题设置

    1. 内部编辑区域主题 Eclipse黑色主题包 下载主题包解压到Eclipse安装目录下的dropins目录,重启Eclipse,Windows—>Preferences—>Genera ...

  3. Hibernate 注解说明

      转:http://blog.csdn.net/u012312373/article/details/46566081   1.类级别注解 @Entity     映射实体类 @Table    映 ...

  4. gem install bundler

    http://stackoverflow.com/questions/7483515/rake-aborted-no-such-file-to-load-bundler-setup-rails-3-1 ...

  5. Restful随笔

    Rest,即Resources Representational State Transfer(资源表现层状态转化). ·资源(Resources),网络上的一个实体,每种资源对应一个特定的URI(统 ...

  6. winsock编程IOCP模型实现代码

    winsock编程IOCP模型实现代码 话不多说,上代码.借鉴<windows核心编程>部分源码和CSDN小猪部分代码. stdafx.h依赖头文件: #include <iostr ...

  7. 运算程序,计算玩判断,Y继续,重复计算,N结束

    #include "stdio.h" void main() { /*定义变量,d1,d2:第一.二个数 fu:符号 p1:接收判断号Y/N p2:接收的p1赋给p1 */ int ...

  8. C#使用LitJson解析JSON(转)

    JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式.它基于JavaScript(Standard ECMA-262 3rd Edition - Decembe ...

  9. java设计模式(三)

    单例模式在一个jvm中有且仅有一个对象(1)内部静态类实现 class Singleton{ /*构造方法私有 防止实例化*/ private Singleton(){}; public static ...

  10. .net core 单元测试小记

    创建项目,选择.net core的类库(class library) 修改project.json的配置 { "version": "1.0.0-*", &qu ...