美文网首页
UILable的封装

UILable的封装

作者: 1糖果1加醋 | 来源:发表于2018-08-24 15:01 被阅读0次

/**

 创建普通文本

 @param frame        frame

 @param text          文字

 @param textColor    字体颜色

 @param textAlignment 字体位置

 @param font          字体大小

 @return label

 */

+ (instancetype)createLabelWithFrame:(CGRect)frame text:(NSString *)text titleColor:(UIColor *)textColor textAlignment:(NSTextAlignment)textAlignment font:(CGFloat)font;

//带行间距的lable

+ (instancetype)createLabelWithFrame:(CGRect)frame text:(NSString *)text titleColor:(UIColor *)textColor textAlignment:(NSTextAlignment)textAlignment font:(CGFloat)font lineSpacing:(CGFloat)lineSpacing;

/**

 获取普通文本的高度  (影响普通文本高度的两个因素:1.最大宽度 2.字体大小)

 @param maxWidth    最大宽度限制

 @return label的高度

 */

- (CGFloat)getLabelHeightWithMaxWidth:(CGFloat)maxWidth;

/**

 获取富文本高度  (影响富文本高度的4个因素:1.最大宽度 2.字体大小 3.行间距  4.字间距  字间距一般不变,这里没有封装)

 @param text      text

 @param maxWidth  最大宽度限制

 @param lineSpacing 行间距

 @return label的高度

 */

- (CGFloat)getAttributeLabelHeightWithText:(NSString*)text maxWidth:(CGFloat)maxWidth lineSpacing:(CGFloat)lineSpacing;

.m文件中

@implementationUILabel (Category)

+ (instancetype)createLabelWithFrame:(CGRect)frame text:(NSString *)text titleColor:(UIColor *)textColor textAlignment:(NSTextAlignment)textAlignment font:(CGFloat)font

{

    UILabel *label = [[UILabel alloc]initWithFrame:frame];

    label.text= text;

    label.textColor= textColor;

    label.textAlignment= textAlignment;

    label.font= [UIFont systemFontOfSize:font];

    returnlabel;

}

+ (instancetype)createLabelWithFrame:(CGRect)frame text:(NSString *)text titleColor:(UIColor *)textColor textAlignment:(NSTextAlignment)textAlignment font:(CGFloat)font lineSpacing:(CGFloat)lineSpacing{

    UILabel *label = [[UILabel alloc]initWithFrame:frame];

    label.text= text;

    label.textColor= textColor;

    label.textAlignment= textAlignment;

    label.font= [UIFont systemFontOfSize:font];

    NSMutableAttributedString *attText = [[NSMutableAttributedString alloc]initWithString:text];

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

    style.lineSpacing= lineSpacing;

    [attText setAttributes:@{NSParagraphStyleAttributeName:style}range:NSMakeRange(0, text.length)];

    label.attributedText= attText;

    returnlabel;

}

- (CGFloat)getLabelHeightWithMaxWidth:(CGFloat)maxWidth

{

    self.numberOfLines = 0;

    self.width= maxWidth;

    CGRect rect = [self.text boundingRectWithSize:CGSizeMake(maxWidth, MAXFLOAT)  options:NSStringDrawingUsesLineFragmentOrigin|NSStringDrawingUsesFontLeading attributes:@{NSFontAttributeName:self.font,} context:nil];

    returnrect.size.height;

}

-(CGFloat)getAttributeLabelHeightWithText:(NSString *)text maxWidth:(CGFloat)maxWidth lineSpacing:(CGFloat)lineSpacing

{

    self.numberOfLines = 0;

    self.width= maxWidth;

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

    [style setLineSpacing:lineSpacing];

    CGRect rect = [text boundingRectWithSize:CGSizeMake(maxWidth, MAXFLOAT)  options:NSStringDrawingUsesLineFragmentOrigin|NSStringDrawingUsesFontLeading attributes:@{NSFontAttributeName:self.font,NSParagraphStyleAttributeName:style} context:nil];

    returnrect.size.height;

}

相关文章

  • UILable的封装

    /** 创建普通文本 @param frame frame @param text 文字 @para...

  • iOS 小知识

    UILabel 通过文字计算宽高 UILable *lable=[UILable alloc]init]; lab...

  • iOS加载Html文本

    UILable||UITextView加载html 使用UILable或TextView比较方便,但是字体样式无法...

  • UILabel顶格显示

    UILable的Category

  • iOS开发初级(一、基础002)

    UILable、UIImageView、UIButton的拓展:三个控件,当显示文字时,使用UILable,当显示...

  • IOS开发 UILabel标签控件

    本节学习内容: 1.UILable的概念 2.UILabel的基本属性 3.UILable的高级属性 [项目名称:...

  • UILable

    UILable是UIKit下的控件,继承UIView,是iOS开发常用的控件。 项目中一般的用法: 多行显示 如果...

  • UILable

    UILable 是一个只读的文本视图,使用这个类绘制单行或者多行的静态文本。你可以将 UILable 作为你界面的...

  • UILable

    /显示下划线 //中划线 // NSDictionary *attribtDic = @{NSStriket...

  • UILable

    UILable summary UILabel的常见属性 UIFont类 Method Demo

网友评论

      本文标题:UILable的封装

      本文链接:https://www.haomeiwen.com/subject/nznbiftx.html