iOS开发技巧之:UILabel设置行间距和字间距并计算高度
#define UILABEL_LINE_SPACE 6
#define HEIGHT [ [ UIScreen mainScreen ] bounds ].size.height
//给UILabel设置行间距和字间距
-(void)setLabelSpace:(UILabel*)label withValue:(NSString*)str withFont:(UIFont*)font {
NSMutableParagraphStyle *paraStyle = [[NSMutableParagraphStyle alloc] init];
paraStyle.lineBreakMode = NSLineBreakByCharWrapping;
paraStyle.alignment = NSTextAlignmentLeft;
paraStyle.lineSpacing = UILABEL_LINE_SPACE; //设置行间距
paraStyle.hyphenationFactor = 1.0;
paraStyle.firstLineHeadIndent = 0.0;
paraStyle.paragraphSpacingBefore = 0.0;
paraStyle.headIndent = 0;
paraStyle.tailIndent = 0;
//设置字间距 NSKernAttributeName:@1.5f
NSDictionary *dic = @{NSFontAttributeName:font, NSParagraphStyleAttributeName:paraStyle, NSKernAttributeName:@1.5f
};
NSAttributedString *attributeStr = [[NSAttributedString alloc] initWithString:str attributes:dic];
label.attributedText = attributeStr;
}
//计算UILabel的高度(带有行间距的情况)
-(CGFloat)getSpaceLabelHeight:(NSString*)str withFont:(UIFont*)font withWidth:(CGFloat)width {
NSMutableParagraphStyle *paraStyle = [[NSMutableParagraphStyle alloc] init];
paraStyle.lineBreakMode = NSLineBreakByCharWrapping;
paraStyle.alignment = NSTextAlignmentLeft;
paraStyle.lineSpacing = UILABEL_LINE_SPACE;
paraStyle.hyphenationFactor = 1.0;
paraStyle.firstLineHeadIndent = 0.0;
paraStyle.paragraphSpacingBefore = 0.0;
paraStyle.headIndent = 0;
paraStyle.tailIndent = 0;
NSDictionary *dic = @{NSFontAttributeName:font, NSParagraphStyleAttributeName:paraStyle, NSKernAttributeName:@1.5f
};
CGSize size = [str boundingRectWithSize:CGSizeMake(width, HEIGHT) options:NSStringDrawingUsesLineFragmentOrigin attributes:dic context:nil].size;
return size.height;
}
原文链接:http://blog.csdn.net/luco2008/article/details/50977718
iOS开发技巧之:UILabel设置行间距和字间距并计算高度相关推荐
- iOS UILabel设置行间距和字间距并计算高度
转载自: http://blog.csdn.net/luco2008/article/details/50977718 #define UILABEL_LINE_SPACE 6 #define HE ...
- iOS UILabel 设置 行间距 和 字间距 并计算高度
#define UILABEL_LINE_SPACE 6 #define HEIGHT [ [ UIScreen mainScreen ] bounds ].size.height //给UILabe ...
- Java富文本设置行间距,设置行间距、字间距和计算富文本高度
上篇文章<富文本用法总结>详细码了关于富文本的一些用法,有介绍行间距的设置方法.在实际开发中经常需要根据后台返回的文字计算控件宽度和高度进行布局,这篇就配合上一篇来设置字间距和计算高度. ...
- UILabel的行间距,字间距处理
啥都不说了,直接上代码,做了一个Category #import <UIKit/UIKit.h> @interface UILabel (ChangeLineSpaceAndWordSpa ...
- 如何设置行间距和字间距?
设置行间距和字之间的距离需要用到css样式.用line-height设置行间距:用letter-spacing设置字间距.具体如下: <!DOCTYPE HTML> <html> ...
- UIlabel的行间距和字间距
比如一个Label的默认间距效果是这样 然后用一个封装起来的Category来调整这部分文字的行间 [UILabel changeLineSpaceForLabel:cell.describeLabe ...
- iOS开发中使用UILabel设置字体的相关技巧小结
这篇文章主要介绍了iOS开发中UILabel设置字体的相关技巧小结,代码基于传统的Objective-C,需要的朋友可以参考下 一.初始化 复制代码代码如下: UILabel *myLabel = [ ...
- textview点击展开全部或收起,内容过长显示省略号,设置行间距,字间距,跑马灯显示
跑马灯显示 android:ellipsize="marquee" android:singleLine="true" paomad.setSelected(t ...
- CSS设置行间距和字间距
CSS设置行间距 在CSS中通过line-height属性来实现行间距的设置,line-height的值表示的是两行文字之间基线的距离. 文字的基线,指的是如果给文字加上下划线,那么上下划线就是文字的 ...
最新文章
- OpenCV 笔记(01)— OpenCV 概念、整体架构、各模块主要功能
- pytorch中调整学习率的lr_scheduler机制
- Maven下载、配置环境变量、配置本地仓库、国内镜像源、在IDEA中配置Maven
- linux select使用
- 前端捕捉轨迹_一篇文章教你如何捕获前端错误
- rust怎么建柱子_小报:捷达VS5安全带卡扣向里?敲B柱?怎么掰回来? 第191220期...
- Angular CLI 生成项目时css less scss样式使用说明
- 2019最新QQ音乐Api
- 屏蔽群晖系统升级并去除群晖桌面小红点
- java学习之Swing篇(一)——QQ登录界面
- iOS App Thinning
- A - Artwork Gym - 101550A
- 2021年三季度中国医疗服务行业A股上市企业营收排行榜:国际医学于1月17日起戴帽,简称变更为“ST国医”(附热榜TOP37详单)
- win+D无法回到桌面
- Opencv-Python-导向滤波快速导向滤波
- uniapp-获取省市区地址及内部高德sdk的使用
- oracle数据库所在主机内存耗尽
- Tunnel 技术是什么?
- 在Word中隐藏文字
- Ubuntu下安装打印机驱动(两种方法)
热门文章
- Antd多文件上传后台接收为null问题
- 豌豆荚应用市场上传时提示“抽取icon失败”解决方案
- strocli64 源码_storcli64和smartctl定位硬盘的故障信息
- 准高三家长:高中数学差一对一补课到底有没有用?
- 工程师职称的专业分类
- 2 ai and machine learning for coders Laurence Moroney 学习笔记(二)chapter2 计算机视觉导论(Introduction to CV))
- 计算机科学与技术的职业需求,职业规划:计算机科学与技术专业就业前景
- 【观察】纷享销客:中国SaaS CRM市场的“破壁人”
- 我大一的时候就写出了一个Android邮件框架
- 获取名字拼音首字母转换大写排序