IOS UILabel的公共属性及拓展属性

前言

在IOS开发的过程中,UILabel是很常用的一个控件,,同时也是大量使用的一个控件。创建一个UILabel一般需要五六句代码,如果我们需要创建几十个UILabel,就意味着我们要写五六十句代码,其实很多代码是重复的,我们可以把类似的代码写到一个公共的方法中,以提高工作效率和降低代码重复。官方提供UILabel的一些属性有很大的局限性,有些在项目中开发中需要用到的一些拓展性的属性,根据个人经验,也顺便一起总结在这里。

一、创建UILabel公共的方法

1、头文件中声明方法如下:

+ (UILabel *)commonLabelWithFrame:(CGRect)frametext:(NSString*)textcolor:(UIColor*)colorfont:(UIFont*)fonttextAlignment:(NSTextAlignment)textAlignment;2、源文件中实现该方法:+ (UILabel *)commonLabelWithFrame:(CGRect)frametext:(NSString*)textcolor:(UIColor*)colorfont:(UIFont*)fonttextAlignment:(NSTextAlignment)textAlignment{UILabel *label = [[UILabel alloc] initWithFrame:frame];label.text = text;label.textColor = color;label.font = font;label.textAlignment = textAlignment;label.backgroundColor = [UIColor clearColor];return label;}

二、动态设置UILabel高度

1、头文件申明方法如下:

/** * 创建一个动态高度的UILabel * * @param pointXLabel的横坐标 * @param pointYLabel的纵坐标 * @param widthLabel的宽度 * @param strContent 内容 * @param color字体颜色 * @param font字体大小 * @param textAlignmeng 对齐方式 * * @return 返回一个UILabel */+ (UILabel *)dynamicHeightLabelWithPointX:(CGFloat)pointXpointY:(CGFloat)pointYwidth:(CGFloat)widthstrContent:(NSString *)strContentcolor:(UIColor *)colorfont:(UIFont *)fonttextAlignmeng:(NSTextAlignment)textAlignmeng;2、源文件中实现该方法://动态设置Label的高度+ (UILabel *)dynamicHeightLabelWithPointX:(CGFloat)pointXpointY:(CGFloat)pointYwidth:(CGFloat)widthstrContent:(NSString *)strContentcolor:(UIColor *)colorfont:(UIFont *)fonttextAlignmeng:(NSTextAlignment)textAlignmeng{NSMutableParagraphStyle *paragraphStyle = [[NSMutableParagraphStyle alloc]init];paragraphStyle.lineBreakMode = NSLineBreakByWordWrapping;NSDictionary *attributes = @{NSFontAttributeName:font,NSParagraphStyleAttributeName:paragraphStyle.copy};CGSize labelSize = [strContent boundingRectWithSize:CGSizeMake(width,MAXFLOAT)options:NSStringDrawingUsesLineFragmentOriginattributes:attributescontext:nil].size;UILabel *myLabel = [[UILabel alloc] initWithFrame:CGRectMake(pointX, pointY, width, labelSize.height)];[myLabel setNumberOfLines:0];myLabel.text = strContent;myLabel.font = font;myLabel.textColor = color;return myLabel;}3、测试结果:- (void)viewDidLoad {[super viewDidLoad];NSString *str = @"6月初,华润华发联合体以87.95亿元拿下上海闸北地块,地块楼面价38061元/平方米,刷新了其自身于3月创下的上海总价“地王”纪录。同日,招商平安联合体则以高达2.3万元/平方米的楼面价,竞得宝山大场镇地块,创出近90%的高溢价率。不仅是一线市场,杭州、苏州等二线市场也在6月初集中推地。杭州西溪湿地旁低密度住宅地块楼面价9975元/平方米,溢价率33%,成为2014年春节以来杭州溢价率最高的住宅用地。";UILabel *label = [LTLabel dynamicHeightLabelWithPointX:5 pointY:20 width:self.view.frame.size.width-10 strContent:str color:[UIColor blackColor] font:[UIFont systemFontOfSize:20.0] textAlignmeng:NSTextAlignmentLeft];label.backgroundColor = [UIColor groupTableViewBackgroundColor];[self.view addSubview:label];}

(1)字体大小为15号,与边距间隔为5,测试结果如下:

(2)字体大小为20号,于边距间隔为5,测试结果如下:

(3)字体大小为20号,于边距间隔为50,测试结果如下:

(4)字体大小为20号,于边距间隔为5,增加文本内容,测试结果如下:

三、设置UILabel的对齐方式

对于官方已经提供UILabel的一些对齐方式,在这里就不做说明了,这里主要补充官方没有提供的对齐方式。主要提供了三种常用的对齐方式:垂直顶端对齐、顶端居中对齐、顶端靠右对齐。

我提着行李,独自一人向远方走去,夕阳将我的身影拉得斜长,

IOS UILabel的公共属性及拓展属性

相关文章:

你感兴趣的文章:

标签云: