UILabel 行间距
label自适应和字体行间距字间距的设置
#import <Foundation/Foundation.h>
@interface LabelLayout : NSObject
/// label设置行间距 参数1:内容 参数2:label 参数3:行间距 参数4:字间距 参数5:字大小 参数6:label的宽度
+(CGSize)AdaptiveLabelText:(NSString *)str andLabel:(UILabel *)label andLineSpac:(CGFloat )lineSoac andFontSpac:(NSNumber *)fontSpac andFontSize:(CGFloat )fontSize andWidth:(CGFloat )labelWidth;
/// 设置不同的字体大小 参数1:开始位置 参数2:结束位置 参数3:设置的内容
+(NSAttributedString *)setDifferFontSzie2:(NSInteger )len1 andEndIndex:(NSInteger )len2 andString:(NSString *)str andFontSize:(float )size;
///设置button宽度自适应 参数1:字体大小 参数2:要显示的内容
+(CGFloat)buttonWidth:(CGFloat )fontSize andStr:(NSString *)str;
///设置label宽度自适应 参数1:要显示的内容 参数2:字体大小
+(CGFloat)LabelWithStr:(NSString *)str andFont:(CGFloat )foutSize;
/// 设置不同的字体颜色 参数1:开始位置 参数2:结束位置 参数3:设置的内容 参数4:设置的颜色
+(NSAttributedString *)setDifferFontColor:(NSInteger )len1 andEndIndex:(NSInteger )len2 andString:(NSString *)str andColor:(UIColor *)color;
@end
//
// LabelLayout.m
// VaolonUser
//
// Created by sky on 16/4/9.
// Copyright © 2016年 FanLang. All rights reserved.
// 关于label一些属性的公共方法
#import "LabelLayout.h"
#import "WidthHeight.pch"
@implementation LabelLayout
+(CGSize)AdaptiveLabelText:(NSString *)str andLabel:(UILabel *)label andLineSpac:(CGFloat )lineSoac andFontSpac:(NSNumber *)fontSpac andFontSize:(CGFloat )fontSize andWidth:(CGFloat )labelWidth{
label.numberOfLines=0;
NSMutableParagraphStyle *paraStyle = [[NSMutableParagraphStyle alloc] init];
paraStyle.lineBreakMode = NSLineBreakByWordWrapping;
paraStyle.alignment = NSTextAlignmentNatural;
paraStyle.lineSpacing = lineSoac;//设置行间距
paraStyle.hyphenationFactor = 1.0;
paraStyle.firstLineHeadIndent = 0.0;
paraStyle.paragraphSpacingBefore = 0.0;
paraStyle.headIndent = 0;
paraStyle.tailIndent = 0;
NSDictionary *dic = @{NSFontAttributeName:[UIFont fontWithName:@"Arial" size:fontSize*mu], NSParagraphStyleAttributeName:paraStyle, NSKernAttributeName:fontSpac};
NSAttributedString *attributeStr;
if (str) {
attributeStr = [[NSAttributedString alloc] initWithString:str attributes:dic];
}else{
attributeStr = [[NSAttributedString alloc] initWithString:@"" attributes:dic];
}
label.attributedText = attributeStr;
return [str boundingRectWithSize:CGSizeMake(labelWidth, 9999999) options:NSStringDrawingUsesLineFragmentOrigin attributes:dic context:nil].size;
}
+(void)setLabel:(UILabel *)label andFout:(CGFloat )foutSize andFoutColor:(UIColor *)color{
label.font=[UIFont fontWithName:@"Arial" size:foutSize*mu];
label.textColor=color;
}
#pragma mark - 设置不同的字体大小
+(NSAttributedString *)setDifferFontSzie:(NSInteger )len1 andEndIndex:(NSInteger )len2 andString:(NSString *)str{
NSMutableAttributedString *text = [[NSMutableAttributedString alloc] initWithString:str];
[text addAttribute:NSFontAttributeName value:[UIFont fontWithName:@"Arial" size:14*mu] range:NSMakeRange(len1, len2)];
return text;
}
+(NSAttributedString *)setDifferFontSzie2:(NSInteger )len1 andEndIndex:(NSInteger )len2 andString:(NSString *)str andFontSize:(float )size{
NSMutableAttributedString *text = [[NSMutableAttributedString alloc] initWithString:str];
[text addAttribute:NSFontAttributeName value:[UIFont fontWithName:@"Arial" size:size*mu] range:NSMakeRange(len1, len2)];
return text;
}
#pragma mark - 设置不同的字体大小
+(NSAttributedString *)setDifferFontColor:(NSInteger )len1 andEndIndex:(NSInteger )len2 andString:(NSString *)str andColor:(UIColor *)color{
NSMutableAttributedString *text = [[NSMutableAttributedString alloc] initWithString:str];
// [text addAttribute:NSFontAttributeName value:[UIFont fontWithName:@"Arial" size:14*mu] range:NSMakeRange(len1, len2)];
[text addAttribute:NSForegroundColorAttributeName value:color range:NSMakeRange(len1, len2)];
return text;
}
#pragma mark - button自适应宽度
+(CGFloat)buttonWidth:(CGFloat )fontSize andStr:(NSString *)str{
NSDictionary *attributes = @{NSFontAttributeName:[UIFont systemFontOfSize:fontSize]};
CGFloat length = [str boundingRectWithSize:CGSizeMake(320, 2000) options:NSStringDrawingUsesLineFragmentOrigin attributes:attributes context:nil].size.width+5;
return length;
}
#pragma mark - label自适应宽度
+(CGFloat)LabelWithStr:(NSString *)str andFont:(CGFloat )foutSize{
CGRect rect = [str boundingRectWithSize:CGSizeMake(0, 10000.0) options:NSStringDrawingUsesLineFragmentOrigin | NSStringDrawingUsesFontLeading attributes:@{NSFontAttributeName:[UIFont systemFontOfSize:foutSize*mu]} context:nil];
return rect.size.width;
}
@end