UILabel行间距及其用法
2016-03-16 21:30
399 查看
看了很多别人写的NSMutableAttributedString,今天自己把NSMutableAttributedString用法总结一次
创建一个helper帮助类,便于迅速调用 下面是帮助类中的 实现方法
//传入值 labStr文本内容, spacing行距, x y起始点坐标
+ (UILabel *)getLinesSpacing:(NSString *)labStr spacing:(float)spacing withX:(float)x withY:(float)y{
UILabel *cLabel = [UILabelnew];
NSString * cLabelString = labStr;
cLabel.numberOfLines =
0;
NSMutableAttributedString * attributedString = [[NSMutableAttributedStringalloc]initWithString:cLabelString];
//此处只有一个paragraphStyle,每行的间距就一样,可以设置多个,设置成不同的行间距,
NSMutableParagraphStyle * paragraphStyle = [[NSMutableParagraphStylealloc]init];
[paragraphStyle setLineSpacing:spacing];
//此处可给不同的属性,不同的值,不同的range或者string 实现不同的效果,如,一行中某个字体颜色不同,
/**
* NSFontAttributeName
设置不同的字体大小
*NSForegroundColorAttributeName
设置不同的字体颜色
*NSParagraphStyleAttributeName
设置不同的行间距
* value 需要给的值
* rangge 这个样式所在label中包含的范围
*/
[attributedString addAttribute:NSParagraphStyleAttributeNamevalue:paragraphStylerange:NSMakeRange(0,
[cLabelStringlength])];
[cLabel setAttributedText:attributedString];
[cLabel sizeToFit];
cLabel.lineBreakMode =NSLineBreakByTruncatingTail;
CGSize maximumLabelSize =
CGSizeMake(100,
9999);//labelsize的最大值
//关键语句
CGSize expectSize = [cLabel
sizeThatFits:maximumLabelSize];
//设置label的宽高
cLabel.frame =
CGRectMake(x, y, expectSize.width, expectSize.height);
return cLabel;
}
帮助类中的方法已写好,下面是调用
//行间距10起始点位置 20,74
UILabel *labe = [LabelHelpergetLinesSpacing:@"第一行\n第二行\n第三行"spacing:10withX:20withY:74];
labe.font = [UIFontsystemFontOfSize:16];
[self.viewaddSubview:labe];
创建一个helper帮助类,便于迅速调用 下面是帮助类中的 实现方法
//传入值 labStr文本内容, spacing行距, x y起始点坐标
+ (UILabel *)getLinesSpacing:(NSString *)labStr spacing:(float)spacing withX:(float)x withY:(float)y{
UILabel *cLabel = [UILabelnew];
NSString * cLabelString = labStr;
cLabel.numberOfLines =
0;
NSMutableAttributedString * attributedString = [[NSMutableAttributedStringalloc]initWithString:cLabelString];
//此处只有一个paragraphStyle,每行的间距就一样,可以设置多个,设置成不同的行间距,
NSMutableParagraphStyle * paragraphStyle = [[NSMutableParagraphStylealloc]init];
[paragraphStyle setLineSpacing:spacing];
//此处可给不同的属性,不同的值,不同的range或者string 实现不同的效果,如,一行中某个字体颜色不同,
/**
* NSFontAttributeName
设置不同的字体大小
*NSForegroundColorAttributeName
设置不同的字体颜色
*NSParagraphStyleAttributeName
设置不同的行间距
* value 需要给的值
* rangge 这个样式所在label中包含的范围
*/
[attributedString addAttribute:NSParagraphStyleAttributeNamevalue:paragraphStylerange:NSMakeRange(0,
[cLabelStringlength])];
[cLabel setAttributedText:attributedString];
[cLabel sizeToFit];
cLabel.lineBreakMode =NSLineBreakByTruncatingTail;
CGSize maximumLabelSize =
CGSizeMake(100,
9999);//labelsize的最大值
//关键语句
CGSize expectSize = [cLabel
sizeThatFits:maximumLabelSize];
//设置label的宽高
cLabel.frame =
CGRectMake(x, y, expectSize.width, expectSize.height);
return cLabel;
}
帮助类中的方法已写好,下面是调用
//行间距10起始点位置 20,74
UILabel *labe = [LabelHelpergetLinesSpacing:@"第一行\n第二行\n第三行"spacing:10withX:20withY:74];
labe.font = [UIFontsystemFontOfSize:16];
[self.viewaddSubview:labe];
相关文章推荐
- 字符串"true"转换为布尔型boolean「true」
- LightOJ 1255 - Substring Frequency
- Java Gradle入门指南之内建与定制任务类(buildSrc、Groovy等)
- iOS设计之 表格UITableView 的参数与视图页面之间的相互传递
- UESTC 1146 秋实大哥与连锁快餐店
- Shape + Selector: Make a Shape as one item of the Selector
- windows客户端开发--duilib显示html
- windows客户端开发--duilib显示html
- CharSequence类
- Volley源码学习(三):线程处理request,类CacheDispatcher,NetworkDispatcher,ExecutorDelivery
- iOS UIView animation动画效果 (1)
- easyui 列表里下拉框联动
- UI进阶——SQL数据库
- android:finishOnTaskLaunch="true" //虽然这样设置了,但是Back键与Home键还是不同
- torque
- 给UIButton设置BackgroundColor:forState
- guice框架的入门使用
- (4.5.3.4)finished with non-zero exit value 2
- UI组件:PopupWindows的详细使用(一)
- U3D打包DLL插件 DLL Builder