对于一个标签的UILabel类的属性,方法的详解。
首先初始化一个labelOne对象的两种方法:app
//先初始化对象,而后在须要的时候设定labelOne在父视图上的位置和大小 UILabel * labelOne = [[UILabel alloc]init]; //UILabel * labelOne = [UILabel new];一样是初始化一个labelOne对象 [labelOne setFrame:CGRectMake(100, 100, 300, 100)]; //直接在初始化的时候设定labelOne在父视图上的位置和大小 UILabel * labelOne = [[UILabel alloc]initWithFrame:CGRectMake(100, 100, 300, 100)];
设置labelOne的文字(包括文字的颜色、大小和文字的对齐方式)字体
labelOne.text = @"这是一个标签"; //若是不设置文字颜色,则系统默认颜色为黑色 labelOne.textColor = [UIColor blackColor]; //若是不设置文字大小,则系统默认大小为17 labelOne.font = [UIFont systemFontOfSize:17]; //NSTextAlignmentLeft当前的文本相对于labelOne的frame是左对齐 //NSTextAlignmentCenter当前的文本相对于labelOne的frame是居中 //NSTextAlignmentRight当前的文本相对于labelOne的frame是右对齐 //NSTextAlignmentJustified最后一行天然对齐 //NSTextAlignmentNatural默认对齐脚本 labelOne.textAlignment = NSTextAlignmentLeft;
设置labelOne文本超出labelOne的size时文本的显示方式:code
labelOne.lineBreakMode = NSLineBreakByWordWrapping; NSLineBreakByWordWrapping, //以空格为边界,保留单词(默认设置) NSLineBreakByCharWrapping, //保留字符(包括空格) NSLineBreakByClipping, //简单剪裁,到边界为止 NSLineBreakByTruncatingHead, //按照"……标签"显示 NSLineBreakByTruncatingTail, //按照"我……签"显示 NSLineBreakByTruncatingMiddle //按照"我是……"显示
前三个类型这样说不太形象,可是当它和numberOfLines属性一块儿用的时候就能够很明显的看出来:对象
labelOne.numberOfLines = 0; //默认是1,当设置成0的时候若是文本长度超出labelOne的宽度且高度够的状况下会自动换行 labelOne.lineBreakMode = NSLineBreakByWordWrapping; NSLineBreakByWordWrapping, //若是高度够的话,则会根据宽度和文本中单词的长度来决定一行放几个完整的单词,超出的部分则换行 NSLineBreakByCharWrapping, //和第一个相似,不过是改为按照每个字符来计算,也就是说在换行的时候不会自动保留完整的单词,有可能会将其拆开 NSLineBreakByClipping, //目前亲测和第一个好像没有什么区别
设置labelOne文本的前景色和投影事件
//首先设置labelOne是否开启高亮状态,也就是前景色 labelOne.highlighted = YES; //设置labelOne的前景色 labelOne.highlightedTextColor = [UIColor redColor]; //设置labelOne的投影的颜色 labelOne.shadowColor = [UIColor blueColor]; //设置labelOne的投影位置,也就是投影的偏移量 labelOne.shadowOffset = CGSizeMake(0, 30);
设置labelOne的其余属性ip
//设置labelOne不能够编辑,自己labelOne在运行以后是不能被编辑的,这里设置这个属性为NO的时候labelOne的文本颜色会变成浅色。 labelOne.enabled = NO; //设置labelOne是否能够交互,当设置为YES的时候,为labelOne添加手势以后就会响应手势的事件,默认是NO。 labelOne.userInteractionEnabled = YES; //设置labelOne的文本最小的字体大小,当小于这个值的时候,会将字体大小设置为这个最小值。 labelOne.minimumScaleFactor = 17; //自动调节labelOne的文本字体大小来适应labelOne的宽度,默认为NO。 labelOne.adjustsFontSizeToFitWidth = YES; //微调文本的位置,有三个类型,默认是文本最上端与Label中线对齐。 labelOne.baselineAdjustment = UIBaselineAdjustmentAlignBaselines; UIBaselineAdjustmentAlignBaselines //文本最上端与Label中线对齐,默认值 UIBaselineAdjustmentAlignCenters //文本中线与Label中线对齐 UIBaselineAdjustmentNone //文本最下端与Label中线对齐 //计算在指定的范围内的labelOne显示当前行的文本的frame 第一个参数是指定的范围,第二个参数是labelOne限制多少行,亲测以后发现,目前第二个参数暂时不知道用意在什么地方,不管设置多少行,计算出来的结果只和指定的范围有关系。 //labelOne textRectForBounds:labelOne.bounds limitedToNumberOfLines:2 NSLog(@"%@",NSStringFromCGRect([labelOne textRectForBounds:labelOne.bounds limitedToNumberOfLines:2])); //在绘图的时候,将labelOne的文本绘制到指定的范围。 - (void)drawTextInRect:(CGRect)rect
设置labelOne的边框和圆角it
//设置labelOne的边框宽度 labelOne.layer.borderWidth = 1; //设置labelOne的边框颜色 labelOne.layer.borderColor = [UIColor lightGrayColor].CGColor; //设置labelOne的圆角半径 labelOne.layer.cornerRadius = 5; //设置完圆角半径以后须要对labelOne进行剪裁,把超出的部分剪裁掉才能显示圆角的效果 labelOne.layer.masksToBounds = YES;
以上是相对于Objective-C的UILabel类的属性和方法的总结,以后还会更新在Swift下的UILabel类的方法调用和属性调用的总结,谢谢你们支持。io