UIlabel 调整字间距

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


IOS--UILabel 用法详解


//compareString长度最长的字符串,currentString当前字符串  label要加载的label

num 当前字符串长度

+(void)setLabel:(UILabel *)label withString:(NSString *)currentString compareString:(NSString *)compareString WithFont:(UIFont *)font withNumber:(CGFloat)num

{

NSMutableParagraphStyle *paraStyle = [[NSMutableParagraphStyle alloc] init];

paraStyle.lineBreakMode = NSLineBreakByCharWrapping;

paraStyle.alignment = NSTextAlignmentLeft;

//paraStyle.lineSpacing = 6; //设置行间距

paraStyle.hyphenationFactor = 1.0;

paraStyle.firstLineHeadIndent = 0.0;

paraStyle.paragraphSpacingBefore = 0.0;

paraStyle.headIndent = 0;

paraStyle.tailIndent = 0;

CGSize  compareSize = [compareString boundingRectWithSize:CGSizeMake(MAXFLOAT, MAXFLOAT) options:NSStringDrawingTruncatesLastVisibleLine | NSStringDrawingUsesLineFragmentOrigin | NSStringDrawingUsesFontLeading attributes:@{NSFontAttributeName:font} context:nil].size;

CGSize  currentSize = [currentString boundingRectWithSize:CGSizeMake(MAXFLOAT, MAXFLOAT) options:NSStringDrawingTruncatesLastVisibleLine | NSStringDrawingUsesLineFragmentOrigin | NSStringDrawingUsesFontLeading attributes:@{NSFontAttributeName:font} context:nil].size;

//设置字间距 NSKernAttributeName:@1.5f

NSDictionary *dic = @{NSFontAttributeName:font, NSParagraphStyleAttributeName:paraStyle, NSKernAttributeName:[NSNumber numberWithFloat:(compareSize.width-currentSize.width)/(num-1.0f)]};

NSAttributedString *attributeStr = [[NSAttributedString alloc] initWithString:currentString attributes:dic];

label.attributedText = attributeStr;

}



[common setLabel:_typeLab withString:type compareString:@"组织机构名称" WithFont:[UIFont systemFontOfSize:14] withNumber:(CGFloat)type.length];

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容