转自: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. 虚拟机在 OpenStack 里没有共享存储条件下的在线迁移[转]

    原文链接:http://www.ibm.com/developerworks/cn/cloud/library/1508_wangyx_openstacklivemigrate/ 迁移(Migrati ...

  2. [河南省ACM省赛-第三届] 房间安排 (nyoj 168)

    题目链接:http://acm.nyist.net/JudgeOnline/problem.php?pid=168 分析:找到一天中需要最多的房间即可 #include<iostream> ...

  3. spring mvc 实现文件上传下载

    /** * 文件上传 * @param pictureFile */ @RequestMapping("/reportupload") public ResponseInfo up ...

  4. H5移动端页面设计心得分享(转载)

    去年JDC出了不少优秀的武媚娘…不,H5呢,大家都很拼,同时当然也积累了一些经验和教训,今天结合咱们的实战案例,从字体,排版,动效,音效,适配性,想法这几个方面好好聊一聊关于H5的设计,希望对同学们有 ...

  5. React学习笔记-03 state

    每一个组件都有状态,比如一个开关,开 和 关,都是一种state.那么react是怎么管理它的state的? React 把用户界面当做状态机,可以轻松的让用户界面和数据保持一致.用户只需要更新组件的 ...

  6. Redis哈希相关命令

    hash类型(类似于多维数组)hset key field value 把key中filed域的值设置为value(如果之前存在就覆盖,不存在就添加) hmset key field1 value1[ ...

  7. CachedRowSet的用法

    String sql="select item_code from xt_dictionary_item where type_id='32' and parent_itemid='0' o ...

  8. <button>与<input type="button"> 的区别

    <button> button按钮点击会刷新整个页面 <input type="button">  不会刷新整个页面 本文为本人用来记录自己做的一些东西,如 ...

  9. php 常用的调试方法

    file_put_contents("c:\1.log","输出字符串",FILE_APPEND);第三个参数是防止前面的内容被覆盖 error_log(pri ...

  10. sql语句的学习(2)

    7.统计:学号.姓名.语文.数学.英语.总分.平均成绩 8.列出各门课程的平均成绩.课程,平均成绩 9.列出数学成绩的排名(要求显示字段:学号,姓名,成绩,排名) 10.列出数学成绩在2-3名的学生( ...