ios开发UI篇--UILabel

概述

  • UILabel类实现了一个只读文本视图。你可以使用这个类来画一个或多个静态文本.UILabel类支持既简单又复杂的样式标签文本,还可以控制外观,比如标签是否使用了一个影子或者处于高亮状态等等.
  • UILabel类继承自UIView
属性
创建UILabel对象
UILabel *label = [[UILabel alloc] initWithFrame:CGRectMake(0, 0, 100, 100)];

设置显示文字,默认是空的
label.text = @"测试";

设置字体(系统默认字体是17号字体)
label.font = [UIFont systemFontOfSize:16];

设置字体颜色(默认是黑色)
label.textColor = [UIColor redColor];

设置对齐方式(在iOS 9之后,此属性的默认值是nstextalignmentnatural;之前的iOS 9,默认值为nstextalignmentleft。)
居左 NSTextAlignmentLeft 居中 NSTextAlignmentCenter 居右 NSTextAlignmentRight label.textAlignment = NSTextAlignmentCenter;

设置换行模式
以一个单词为单位换行,最一行显示不全内容以单词截断,后面直接不显示 NSLineBreakByWordWrapping 以字符换行 NSLineBreakByCharWrapping 以一个单词为单位换行,最后一行显示不全的内容,在label的最后直接截断,后面直接不显示 NSLineBreakByClipping 显示不全; 最后一行将最后的内容显示,前面使用...代替 例:Truncate at head of line: "...wxyasdasdz" NSLineBreakByTruncatingHead 显示不全; 最后一行将前面的内容显示,最后使用...代替 例:Truncate at tail of line: "abcd..." NSLineBreakByTruncatingTail 显示不全; 最后一行将前面的内容显示和最后的内容显示,中间使用...代替 NSLineBreakByTruncatingMiddle label.lineBreakMode = NSLineBreakByWordWrapping;

设置阴影颜色
label.shadowColor = [UIColor greenColor];

设置阴影的偏移量,默认是 CGSizeMake(0, -1) -- a top shadow
label.shadowOffset = CGSizeMake(0, -2);

设置行数(当文本需要自适应时,需将行数设置为0)
label.numberOfLines = 0;

adjustsFontSizeToFitWidth根据宽度调整font,默认为 NO
label.adjustsFontSizeToFitWidth = YES;

attributedText属性文本,这里不多做介绍,具体请点此查看
高亮属性
设置是否处于高亮状态
[label setHighlighted:YES];

设置高亮状态字体的颜色
label.highlightedTextColor = [UIColor blueColor];

设置能否进行用户交互(默认为NO)
label.userInteractionEnabled = YES;

此属性只决定如何绘制标签。禁用的文本有些模糊,表示它不活跃。默认情况下,此属性被设置为yes。
label.enabled = NO;

自适应
【ios开发UI篇--UILabel】default is NO 设置字体大小适应label宽度
label.adjustsFontSizeToFitWidth = YES;

default is UIBaselineAdjustmentAlignBaselines //如果adjustsFontSizeToFitWidth属性设置为YES,这个属性就来控制文本基线的行为
label.baselineAdjustment = UIBaselineAdjustmentAlignBaselines;

项目中label自适应高度代码
+ (CGFloat)getHeightByWidth:(CGFloat)width title:(NSString *)title font:(UIFont *)font {UILabel *label = [[UILabel alloc] initWithFrame:CGRectMake(0, 0, width, 0)]; label.text = title; label.font = font; label.numberOfLines = 0; [label sizeToFit]; CGFloat height = label.frame.size.height; return height; }

项目中label自适应宽度的代码
+ (CGFloat)getWidthWithTitle:(NSString *)title font:(UIFont *)font { UILabel *label = [[UILabel alloc] initWithFrame:CGRectMake(0, 0, 1000, 0)]; label.text = title; label.font = font; [label sizeToFit]; return label.frame.size.width; }

    推荐阅读