Label设置行间距,段间距,字间距
Label设置行间距,段间距,字间距
- 使用NSMutableAttributedString设置label属性
直接上代码
- (void)viewDidLoad {[super viewDidLoad];NSString *text = @"突然想要写点什么,来纪念自己即将逝去的大学四年时光,借机过度一下自己此时此刻莫可名状的心情;\n突然想要说点什么,来缅怀一下自己当初万丈豪情遗失的时光和所谓的青春年华。\n不知道是骨子里的性情使然,\n还是内心深处想要特意地煽情?";UIFont *font = [UIFont systemFontOfSize:14.f];// 字号CGFloat lineSpace = 5.f; // 行间距CGFloat paragraphSpacing = 10.f; // 段间距CGSize labelSize = CGSizeMake([UIScreen mainScreen].bounds.size.width - 20, 0);NSNumber *textLengthSpace = @1.5; // 字间距NSDictionary *dict = [self setTextLineSpaceWithString:text withLineBreakMode:(NSLineBreakByCharWrapping) withAlignment:NSTextAlignmentLeft withFont:font withLineSpace:lineSpace withTextlengthSpace:textLengthSpace andParagraphSpaceing:paragraphSpacing];CGFloat height = [self getSpaceLabelHeight:text textSize:labelSize withLineBreakMode:(NSLineBreakByCharWrapping) withAlignment:(NSTextAlignmentLeft) withFont:font withLineSpace:lineSpace withTextlengthSpace:textLengthSpace andParagraphSpaceing:paragraphSpacing];UILabel *label = [[UILabel alloc] init];label.numberOfLines = 0;label.frame = CGRectMake(10, 50, labelSize.width, height);label.attributedText = [[NSMutableAttributedString alloc] initWithString:text attributes:dict];[self.view addSubview:label];
}
/**设置label字体, 行间距, 字间距, 段间距 @param string label上文字
@param lineBreakMode 每行容纳字符的宽度
@param alignment 对齐方式
@param font 字体大小
@param lineSpace 行间距
@param textlengthSpace 字间距
@param paragraphSpacing 段间距
@return 存放属性的字典*/
- (NSDictionary *)setTextLineSpaceWithString:(NSString *)string withLineBreakMode:(NSLineBreakMode)lineBreakMode withAlignment:(NSTextAlignment)alignment withFont:(UIFont *)font withLineSpace:(CGFloat)lineSpace withTextlengthSpace:(NSNumber *)textlengthSpace andParagraphSpaceing:(CGFloat)paragraphSpacing {// 1. 创建样式对象NSMutableParagraphStyle *style = [[NSMutableParagraphStyle alloc] init];// 2. 每行容纳字符的宽度style.lineBreakMode = lineBreakMode;// 3. 对齐方式style.alignment = alignment;// 4. 设置行间距style.lineSpacing = lineSpace;// 5. 连字符号链接style.hyphenationFactor = 1.0f;// 6. 首行缩进style.firstLineHeadIndent = 30.0f;// 7. 段间距style.paragraphSpacing = paragraphSpacing;// 8. 段前间距style.paragraphSpacingBefore = 0.0f;// 9. 除首行之外其他行缩进style.headIndent = 0.0f;// 10. 每行容纳字符的宽度style.tailIndent = 0.0f;NSDictionary *dict = @{NSFontAttributeName : font,NSParagraphStyleAttributeName : style,NSKernAttributeName : textlengthSpace,};return dict;
}
/* 计算label高度 */
- (CGFloat)getSpaceLabelHeight:(NSString *)string textSize:(CGSize)textSize withLineBreakMode:(NSLineBreakMode)lineBreakMode withAlignment:(NSTextAlignment)alignment withFont:(UIFont *)font withLineSpace:(CGFloat)lineSpace withTextlengthSpace:(NSNumber *)textlengthSpace andParagraphSpaceing:(CGFloat)paragraphSpacing {NSMutableParagraphStyle *style = [[NSMutableParagraphStyle alloc] init];style.lineBreakMode = lineBreakMode;style.alignment = alignment;style.lineSpacing = lineSpace;style.paragraphSpacing = paragraphSpacing;style.hyphenationFactor = 1.0;style.firstLineHeadIndent = 30.0;style.paragraphSpacingBefore = 0.0;style.headIndent = 0;style.tailIndent = 0;NSDictionary *dic = @{NSFontAttributeName:font,NSParagraphStyleAttributeName:style,NSKernAttributeName:textlengthSpace};CGSize size = [string boundingRectWithSize:textSize options:NSStringDrawingUsesLineFragmentOrigin attributes:dic context:nil].size;return size.height;
}
效果如图:
Label设置行间距,段间距,字间距相关推荐
- Label设置行间距
Label设置行间距 内容摘要 UILabel显示多行文本 UILabel设置行间距 解决单行文本 & 多行文本显示的问题 场景描述 众所周知,UILabel显示多行的话,默认行间距为0,但实 ...
- docx行间距怎么设置_Word如何调整字间距,行间距.docx
PAGE PAGE #/ 2 Word 如何调整字间距.行间距 字间距决定行内文字之间的距离.行距决定段落中各行文字之间的垂直距 离.段落间距决定段落上方或下方的间距量. 一.调整汉字与英文字母.数字 ...
- 【LaTeX入门】04 设置行间距 段间距
分享一下我老师大神的人工智能教程!零基础,通俗易懂!http://blog.csdn.net/jiangjunshow 也欢迎大家转载本篇文章.分享知识,造福人民,实现我们中华民族伟大复兴! 设置行间 ...
- CSS行间距line-height和字间距、字体间距、字符间距详解
行间距line-height 行高line-height的值可以为百分比数字 | 由浮点数字和单位标识符组成的长度值,允许为负值.其百分比取值是基于字体的高度尺寸. 在文章中,要实现调节设置每行文字字 ...
- Java富文本设置行间距,如何解决富文本设置行间距的单行带间距问题
最近因为要调UILabel的行间距时,碰到了个问题,就是当文本时中文时,且只有一行时还是有行间距,由于对 TextKit 和 CoreText 的研究比较少,找了些资料,自己写了比较笨,但也比较简单的 ...
- ios label文字行间距_iOS设置UILabel文字的行间距和字间距
释放双眼,带上耳机,听听看~! 可以在UILabel的Category中提供如下几个方法: .h文件 @interface UILabel (ChangeLineSpaceAndWordSpace) ...
- iOS设置富文本行间距、字间距
Demo下载地址 我们在展示文字信息时,经常会碰到换行自适应高度的文本,这时我们会发现换行之后,文本之间的行间距依然很小,导致看起来很拥挤,影响美观.因此以下代码就是来解决这些问题,新建一个NSStr ...
- word如何调整字间距离_Word如何快速调整行间距和字间距?
WORD中调整行间距和字间距是文档编辑中经常性的操作,但如何快速调整,我还真想了一段时间,下面我介绍的方法不知能不能叫快速? 为了完整性先一般是如何调整行间距和字间距的. 行间距 选中要调整的文字段落 ...
- android+设置字体行高,android textview设置字体的行距和字间距
android textview设置字体的行距和字间距 字间距 textView有一个属性android:textScaleX是调节字间距的,它的值是一个float型.查看源代码,默认textView ...
最新文章
- 价格的格式化 php,价格格式化问题。
- SAP中的Currency Converting Factor
- C++中return语句的用法
- SD卡读写,首选项,共享首选项
- svg图片在vue脚手架vue-cli怎么使用
- JavaScript读取本地图片到浏览器
- 背包问题 codevs2210 数字组合
- Nginx配置文件示例
- python要学多久可以找到工作-自学Python的高效方法,学Python多久能找到工作?
- 如何获取网络标准时间
- 把手机上B站App缓存的视频转换为正常的mp4格式视频
- sklearn实现决策树
- ae合成设置快捷键_ae技巧,使用ae实用小技巧
- 社区购物、社区买菜小程序源码
- 32 《奇特的一生》 -豆瓣评分8.5
- PyMC3 概率编程入门
- 计算机系统声音出不来怎么办,win7系统电脑没有声音怎么办? 是什么原因如何解决...
- 小白都想知道的思维导图软件哪个好,答案在这里
- 气象站的技术参数有哪些?
- Hadoop 数据仓库工具——Hive
热门文章
- 展会ING丨计讯物联在中国水博览会大放异彩,现场人气持续狂飙
- MySQL自动备份到本地数据库,服务器上的Mysql数据自动备份到本地
- break怎么跳出多层循环C语言,C/C++ 跳出多重循环方法
- linux ext4文件系统为什么目录大小是4k?
- 实战商城app之uView框架前端极速开发课程简介
- ICP , ISP and IAP
- R 加权最小二乘 代码_Python-最小二乘法曲线拟合
- 苹果手机变成耳机模式怎么调回来_苹果耳机推出“新功能”:打僵尸!
- 转:2005岁末BLOG程序大评点
- MATLAB 面向对象编程 APP Designer基础