博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
获取指定<文字行数>的<高度>是多少 TextKit
阅读量:6293 次
发布时间:2019-06-22

本文共 1616 字,大约阅读时间需要 5 分钟。

 

- (CGSize)maxLineSizeWithLines:(NSInteger)lines constraintSize:(CGSize)size attributes:(NSDictionary*)dicAttr{
  //负责布局渲染 NSLayoutManager* manager = [[NSLayoutManager alloc] init];   //指定渲染的区域 NSTextContainer* con = [[NSTextContainer alloc] initWithSize:size]; con.lineFragmentPadding = 0; //行间距 con.maximumNumberOfLines = lines;//最多显示的行数 [manager addTextContainer:con];   //负责存储文字内容 NSTextStorage* storage = [[NSTextStorage alloc] initWithString:_str]; [storage addLayoutManager:manager]; [storage addAttributes:dicAttr range:NSMakeRange(0, _str.length)]; CGRect rt = [manager boundingRectForGlyphRange:NSMakeRange(0, _str.length) inTextContainer:con]; return rt.size;} //下面是测试代码

 

UILabel *label = [[UILabel alloc]initWithFrame:CGRectMake(0, 200, kWidth, 100)];    label.backgroundColor = [UIColor greenColor];    label.numberOfLines = 0;    label.font = [UIFont systemFontOfSize:15];    [self.view addSubview:label];         _str = @"啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊";        label.text = _str;        NSMutableParagraphStyle *style = [[NSMutableParagraphStyle alloc]init];    style.lineSpacing = 0;        NSDictionary *dic = @{NSFontAttributeName:[UIFont systemFontOfSize:15],NSParagraphStyleAttributeName:style};        CGSize size = [self maxLineSizeWithLines:2 constraintSize:CGSizeMake(kWidth, 200) attributes:dic];        NSLog(@"%@",NSStringFromCGSize(size));        label.height = size.height;  //返回的size 就是两行文字所占的高度

 

转载于:https://www.cnblogs.com/daxueshan/p/9245343.html

你可能感兴趣的文章
(转)Tomcat7+Redis存储Session
查看>>
vs2012建一个空解决方案添加以前老版本的Web项目调试弹出window安全
查看>>
C# 实现抓取网页内容(一)
查看>>
golang中并发sync和channel
查看>>
margin重叠与line-height属性
查看>>
服务器跟PC机的区别(转)
查看>>
Java核心技术之基础知识
查看>>
读书笔记_写给自学者的入门指南 >博客园||知识库
查看>>
iOS应用之间的跳转与数据传递
查看>>
CCleaner使用说明
查看>>
NOIP专题复习3 图论-强连通分量
查看>>
hdu Dragon Balls
查看>>
java代码-----indexOf()方法--从字符串的某个字符的第一次出现的位子开始
查看>>
java代码=====实现修改while()
查看>>
python (11)文件的读写 按行读文件
查看>>
Python 结巴分词(2)关键字提取
查看>>
python异常处理,日志处理
查看>>
MySQL字符集问题
查看>>
node服务器端模块化-commomjs
查看>>
20165330 2017-2018-2 《Java程序设计》第7周学习总结
查看>>