UILabel+Create

#import <UIKit/UIKit.h>

@interface UILabel (Create)

/**
 *  创建普通Label
 *
 *  @param frame          frame
 *  @param text           text
 *  @param font           font
 *  @param textColor      textColor
 *  @param backgroudColor backgroudColor
 *  @param textAlignment  textAlignment
 *
 *  @return UILabel
 */
+ (UILabel *)createLabelWithFrame:(CGRect)frame text:(NSString *)text font:(UIFont *)font textColor:(UIColor *)textColor backgroudColor:(UIColor *)backgroudColor  textAlignment:(NSTextAlignment)textAlignment;

/**
 *  创建自增高Label
 *
 *  @param frame          frame
 *  @param text           text
 *  @param font           font
 *  @param textColor      textColor
 *  @param backgroudColor backgroudColor
 *  @param textAlignment  textAlignment
 *
 *  @return UILabel
 */
+ (UILabel *)createAdjustsLabelWithFrame:(CGRect)frame text:(NSString *)text font:(UIFont *)font textColor:(UIColor *)textColor backgroudColor:(UIColor *)backgroudColor  textAlignment:(NSTextAlignment)textAlignment;

@end

#import "UILabel+Create.h"

@implementation UILabel (Create)

+ (UILabel *)createLabelWithFrame:(CGRect)frame text:(NSString *)text font:(UIFont *)font textColor:(UIColor *)textColor backgroudColor:(UIColor *)backgroudColor  textAlignment:(NSTextAlignment)textAlignment
{
    UILabel *label = [[UILabel alloc]initWithFrame:frame];
    label.text = text;
    [label setFont:font];
    [label setTextColor:textColor];
    if (backgroudColor == nil) {
        [label setBackgroundColor:[UIColor clearColor]];
    }
    else{
        [label setBackgroundColor:backgroudColor];
    }
    [label setTextAlignment:textAlignment];
    label.numberOfLines = 0;
    
    return  label;
}

+ (UILabel *)createAdjustsLabelWithFrame:(CGRect)frame text:(NSString *)text font:(UIFont *)font textColor:(UIColor *)textColor backgroudColor:(UIColor *)backgroudColor  textAlignment:(NSTextAlignment)textAlignment
{
    UILabel *label = [[UILabel alloc]initWithFrame:frame];
    label.text = text;
    [label setFont:font];
    [label setTextColor:textColor];
    if (backgroudColor == nil) {
        [label setBackgroundColor:[UIColor clearColor]];
    }
    else{
        [label setBackgroundColor:backgroudColor];
    }
    [label setTextAlignment:textAlignment];
    label.numberOfLines = 0;
    
    CGSize maxNameLabelSize = CGSizeMake(frame.size.width,2000);
    CGSize labelSize;
    labelSize = [text boundingRectWithSize:maxNameLabelSize
                                   options:NSStringDrawingUsesLineFragmentOrigin
                                attributes:@{NSFontAttributeName:font}
                                   context:nil].size;
    [label setFrame:CGRectMake(frame.origin.x, frame.origin.y, labelSize.width, labelSize.height)];
    
    return  label;
}

// 使用
[self.view addSubview:[UILabel createLabelWithFrame:CGRectMake(10, 100, self.view.frame.size.width-20, 30) text:_str font:[UIFont systemFontOfSize:14.f] textColor:[UIColor redColor] backgroudColor:[UIColor clearColor] textAlignment:NSTextAlignmentLeft]];

 

posted @ 2014-11-06 17:07  菜鸟程序猿  阅读(274)  评论(0编辑  收藏  举报