iOS开发小知识之改变UIlabel的行间距和字间距
来源:互联网 发布:粤数大数据公司 评价 编辑:程序博客网 时间:2024/05/17 06:13
在iOS开发中经常会用到UIlabel来展示一些文字性的内容,但是默认的文字排版会觉得有些挤,为了更美观也更易于阅读我们可以通过某些方法将UIlabel的行间距和字间距按照需要调节。
比如一个Label的默认间距效果是这样:
然后用一个封装起来的Category来调整这部分文字的行间
[UILabel changeLineSpaceForLabel:cell.describeLabel WithSpace:5.0];
调整后的效果是这样的:
其中5.0就是我自定义的文字间距。
这是一个UILabel 的Category,他的内部实现是这样的:
UILabel+ChangeLineSpaceAndWordSpace.h
#import <UIKit/UIKit.h>@interface UILabel (ChangeLineSpaceAndWordSpace)/** * 改变行间距 */+ (void)changeLineSpaceForLabel:(UILabel *)label WithSpace:(float)space;/** * 改变字间距 */+ (void)changeWordSpaceForLabel:(UILabel *)label WithSpace:(float)space;/** * 改变行间距和字间距 */+ (void)changeSpaceForLabel:(UILabel *)label withLineSpace:(float)lineSpace WordSpace:(float)wordSpace;@end
UILabel+ChangeLineSpaceAndWordSpace.m
#import "UILabel+ChangeLineSpaceAndWordSpace.h"@implementation UILabel (ChangeLineSpaceAndWordSpace)+ (void)changeLineSpaceForLabel:(UILabel *)label WithSpace:(float)space { NSString *labelText = label.text; NSMutableAttributedString *attributedString = [[NSMutableAttributedString alloc] initWithString:labelText]; NSMutableParagraphStyle *paragraphStyle = [[NSMutableParagraphStyle alloc] init]; [paragraphStyle setLineSpacing:space]; [attributedString addAttribute:NSParagraphStyleAttributeName value:paragraphStyle range:NSMakeRange(0, [labelText length])]; label.attributedText = attributedString; [label sizeToFit];}+ (void)changeWordSpaceForLabel:(UILabel *)label WithSpace:(float)space { NSString *labelText = label.text; NSMutableAttributedString *attributedString = [[NSMutableAttributedString alloc] initWithString:labelText attributes:@{NSKernAttributeName:@(space)}]; NSMutableParagraphStyle *paragraphStyle = [[NSMutableParagraphStyle alloc] init]; [attributedString addAttribute:NSParagraphStyleAttributeName value:paragraphStyle range:NSMakeRange(0, [labelText length])]; label.attributedText = attributedString; [label sizeToFit];}+ (void)changeSpaceForLabel:(UILabel *)label withLineSpace:(float)lineSpace WordSpace:(float)wordSpace { NSString *labelText = label.text; NSMutableAttributedString *attributedString = [[NSMutableAttributedString alloc] initWithString:labelText attributes:@{NSKernAttributeName:@(wordSpace)}]; NSMutableParagraphStyle *paragraphStyle = [[NSMutableParagraphStyle alloc] init]; [paragraphStyle setLineSpacing:lineSpace]; [attributedString addAttribute:NSParagraphStyleAttributeName value:paragraphStyle range:NSMakeRange(0, [labelText length])]; label.attributedText = attributedString; [label sizeToFit];}@end
根据内部实现也可以自己灵活运用 不一定用Category的方法。
作者:Elephan_z
链接:http://www.jianshu.com/p/b7a2314e780a
來源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
阅读全文
0 0
- iOS开发小知识之改变UIlabel的行间距和字间距
- iOS开发小知识之改变UIlabel的行间距和字间距
- iOS开发1-UILabel设置行间距和字间距
- ios开发之 改变文本行间距和字符间距
- iOS开发技巧之:UILabel设置行间距和字间距并计算高度
- UILabel设置行间距和字间距
- UILabel + UITextView 字间距和行间距
- iOS UIlabel文字排版(改变字间距行间距)分类
- UILabel改变行间距、字间距(swift)
- UILabel字间距行间距
- [iOS]修改UILabel的行间距/段间距/缩进
- iOS UILabel设置行间距和字间距并计算高度
- iOS UILabel设置行间距和字间距并计算高度
- iOS UILabel设置行间距和字间距并计算高度
- iOS UILabel设置行间距和字间距并计算高度
- iOS UILabel设置行间距和字间距并计算高度
- iOS UILabel设置行间距和字间距并计算高度
- iOS UILabel 设置 行间距 和 字间距 并计算高度
- 标识符
- 操作系统-----虚拟内存管理的好处
- Android5.0以上版本对比
- Android简介
- 文章标题
- iOS开发小知识之改变UIlabel的行间距和字间距
- 环信设置头像和昵称
- Linux内核OOM机制的详细分析和防止进程被OOM杀死的方法
- typescript数组排序之自定义优先排序
- Geth搭建私有链
- linux非阻塞式socket编程之select()用法
- LeetCode--Rotate Image
- 交通守护者“电子警察”
- Main方法,语句,块的定义