转自: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. [SOJ] can I post the letter?

    1155. Can I Post the letter Constraints Time Limit: 1 secs, Memory Limit: 32 MB Description I am a t ...

  2. 【转】delphi 保存到txt文件

    procedure TForm1.btn1Click(Sender: TObject); var astr: string; sList: TStrings; path: string; begin ...

  3. yahoo给出的关于网站优化的建议

    1.使用CDN 内容分发服务器会根据用户的位置选择最近的服务器响应用户的请求,静态资源放在CDN的性能将提升20%左右. 2.设置Expires和Cache-Contral头 将静态资源的过期时间设置 ...

  4. 关于去除input type='file'改变组件的默认样式换成自己需要的样式的解决方案

    在工作中时常会遇到如需要上传功能的按钮,而不像需要系统默认的样式时候,可以采取以下的解决方案: <img onclick="getElementById('file').click() ...

  5. how to make a git repo un-git?

    If you have a git repo and now you want to make it a plain filesystem tree .. (removing the git trac ...

  6. linux基础-安装篇

    linux现在的版本已经升级到7.x的版本了,现在虽然企业还是使用6.x的版本,但是未来的趋势肯定是往7的方向发展的,很多的培训机构或者一些学校的课程也都更新的7的版本进行教学,下面的安装实例就是以7 ...

  7. The Key to final data

    // FinalData.java - (insert one line description here) package com.hp.ci.mgmt.perm.hal.localization; ...

  8. JPG 图片在IE下不能显示的问题

    最近碰到一些客户说,我传的产品图片怎么在网站上无法显示啊.图片也是正常的jpg格式呢.    是的,你传的图片是JPG的,但是怎么就显示不出来呢?    你找深圳网站建设的公司给你建了一个网站,然后在 ...

  9. OOP in JS - Inheritance

    Summary You cause a class to inherit using ChildClassName.prototype = new ParentClass();. You need t ...

  10. C++虚函数继承的bug

    闲来无事想测试一下:如果在派生类中重写基类的虚函数,那么允不允许改变虚函数的访问权限,结果颠覆了三观..... 基类Base,拥有public方法test(),test()为虚函数 派生类Derive ...