iOS UILabel设置行间距和字间距并计算高度

转载 2016年08月30日 14:56:13
#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 = [[NSMutableParagraphStylealloc] 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 = [[NSAttributedStringalloc] initWithString:strattributes:dic];

    label.attributedText = attributeStr;

}


//计算UILabel的高度(带有行间距的情况)

-(CGFloat)getSpaceLabelHeight:(NSString*)str withFont:(UIFont*)font withWidth:(CGFloat)width {

    NSMutableParagraphStyle *paraStyle = [[NSMutableParagraphStylealloc] 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 = [strboundingRectWithSize:CGSizeMake(width,HEIGHT) options:NSStringDrawingUsesLineFragmentOriginattributes:dic context:nil].size;

    return size.height;

}

作者:luco2008

博客地址:http://blog.csdn.net/luco2008/article/details/50977718

[转]iOS UILabel自定义行间距时获取高度

NSString *str = @"UILabel自定义行间距时获取高度,UILabel自定义行间距时获取高度,UILabel自定义行间距时获取高度,UILabel自定义行间距时获取高度,UILabe...

UILabel设置行间距同时要计算得到行高的最简单的方法

UILabel计算行高有两个方法,一个是 sizeWithFont: forWidth: lineBreakMode: 一个是boundingRectWithSize: options: ...

[iOS] UILabel 设置内容的间距及高度的计算

前言UILabel 是的使用频率是非常频繁,当文字较多的时候,会显得密密麻麻的,不利于UI显示及用户观看。通常我们需要对 Label 中“行间距”或“文字间距”进行调整,从而使文字没那么紧密,提高用户...

IOS 富文本 ,设置行间距、字间距,计算高度(转载组合而成)

1计算label内字体在设置行间距和字间距后的高度 2富文本的详细介绍。

Swift3.0 设置UILabel文件行间距 含oc版

UILabel实用设置行间距代码,直接上代码 swift: fileprivate func createUI(){ let subLabel = UILabel() ...

iOS UIlabel文字排版(改变字间距行间距)分类

在iOS开发中经常会用到UIlabel来展示一些文字性的内容,但是默认的文字排版会觉得有些挤,为了更美观也更易于阅读我们可以通过某些方法将UIlabel的行间距和字间距按照需要调节。 比如一个Lab...

如何计算文字大小行间距的label的高度

111

iOS Label行间距设置

在这里label行间距,实现原理是通过字符串长度和label宽度来计算可以显示在多少行,然后设置行与行间的间距。...

iOS开发之UITextView,设置textView的行间距及placeholder

一、设置textView的行间距 1.如果只是静态显示textView的内容为设置的行间距,执行如下代码: //    textview 改变字体的行间距      NSMutableParagr...
  • ridxmc
  • ridxmc
  • 2016年06月17日 15:08
  • 291

控制iOS中文字的字间距与行间距

为了满足不同的视觉效果,我们文字之间的字间距行间距,经常在项目中需要更改,今天把这几句代码提取出来,和小伙伴们一起分享,以免下次你找不到呦~ 如果需要字间距需要提前写上 #import ,而只需要行...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:iOS UILabel设置行间距和字间距并计算高度
举报原因:
原因补充:

(最多只允许输入30个字)