修改UILabel的行间距
2016-03-22 19:29
399 查看
在iOS开发中 有时候为了调整一些UI效果 我们需要调整UILabel之间的行间距:
contentLabel.text:label上显示的文字内容;
5:label行间距;
contentLabel:需要设置行间距的label
contentTextFont:字体大小;
contentLabelW:label的宽度
高度计算思路:
首先要计算label的高度(这个高度是按照系统方法计算的 所以间距也是系统默认的间距 很小的) 然后计算label中每行文字对应的高度 然后label高度除以文字的高度就是label行数
当我们知道label的行数是 也知道了行间距
那么label的实际高度就是label的高度(这个高度是按照系统方法计算的 所以间距也是系统默认的间距 很小的)加上(行数*间距)
PS:这个计算方法不是很好 忽略了系统默认的间距 虽然默认的间距很小 但是忽略的话也会给实际尺寸的计算带来较大误差 另外计算也比较麻烦 我觉得应该还有更简单更方便的方法 只是一时没想到 如果有知道更好方法的小伙伴 请联系我!
contentLabel.text:label上显示的文字内容;
5:label行间距;
contentLabel:需要设置行间距的label
contentTextFont:字体大小;
contentLabelW:label的宽度
NSMutableAttributedString *attributedString = [[NSMutableAttributedString alloc]initWithString:contentLabel.text];; NSMutableParagraphStyle *paragraphStyle = [[NSMutableParagraphStyle alloc]init]; [paragraphStyle setLineSpacing:5]; [attributedString addAttribute:NSParagraphStyleAttributeName value:paragraphStyle range:NSMakeRange(0, contentLabel.text.length)]; contentLabel.attributedText = attributedString; //调节高度(在计算label的高度的时候需要注意 因为行间距变化了 不再是系统默认的行间距了 所以在计算的时候要根据实际的行间距去调整)
CGSize contentTextSize = [self sizeOfText:contentLabel.text WithFont:contentTextFont maxSize:CGSizeMake(contentLabelW, CGFLOAT_MAX)]; CGSize size = [contentlabel.text sizeWithFont:contentTextFont]; int length = size.height; int colomNumber = contentTextSize.height/length; //contentLabelH 就是label的实际高度 CGFloat contentLabelH = contentTextSize.height+colomNumber*5;
//CGSize size = CGSizeMake(width, 500000); //CGSize labelSize = [contentLabel sizeThatFits:size];
高度计算思路:
首先要计算label的高度(这个高度是按照系统方法计算的 所以间距也是系统默认的间距 很小的) 然后计算label中每行文字对应的高度 然后label高度除以文字的高度就是label行数
当我们知道label的行数是 也知道了行间距
那么label的实际高度就是label的高度(这个高度是按照系统方法计算的 所以间距也是系统默认的间距 很小的)加上(行数*间距)
PS:这个计算方法不是很好 忽略了系统默认的间距 虽然默认的间距很小 但是忽略的话也会给实际尺寸的计算带来较大误差 另外计算也比较麻烦 我觉得应该还有更简单更方便的方法 只是一时没想到 如果有知道更好方法的小伙伴 请联系我!
相关文章推荐
- [Angular 2] Build a select dropdown with *ngFor in Angular 2
- QuerySyntaxException: unexpected token: user_id near line 1, column 29 [from model.Demand d where d
- iOS开发之UITextView,设置textView的行间距及placeholder
- PKIX path building failed
- UESTC 1012 Ladygod (多校联盟3)
- UIButton - 设置图片及文字、文字左对齐
- easyui.min.js 报错rows is undefined
- java中的goto,const,ttrue,false,null
- 【优先队列】HDU1509Windows Message Queue
- java中queue的使用
- iOS开发—UILable详解
- UESTC 1271 Search gold (DP,多校联盟3)
- 【转】Android UI开发第三十一篇——Android的Holo Theme
- android SpannableStringBuilder
- GUID(全局唯一标识符)
- IT十八掌作业_java基础第十六天_GUI/socket
- .NET跨平台之Sake和KoreBuild
- ios8 UITableView设置 setSeparatorInset:UIEdgeInsetsZero不起作用的解决办法
- 探究requestDisallowInterceptTouchEvent失效的原因
- A - Farey Sequence——(筛法求欧拉函数)