一,创建UILabel文本控件项目
1,打开Xcode,创建名为HelloWorldText的工程
如何创建工程:Xcode创建HelloWorld项目
2,在ViewController中的viewDidLoad方法中添加如下代码:
- (void)viewDidLoad {
[super viewDidLoad];
UILabel * label = [[UILabel alloc]initWithFrame:CGRectMake(20, 100, 280, 30)];
label.text = @"HelloWorld";
[self.view addSubview:label];
}
initWithFrame是UILabel类的初始化方法
该初始化方法需要传入一个CGRect类型的结构体(绘制矩形)
CGRectMake()方法可以构造出一个CGRect类型的结构体
其中4个参数分别为x坐标,y坐标,高度,宽度,
决定了UILabel控件在屏幕上的位置和尺寸
注意:
UI坐标系中,横向为x轴,向右增大,纵向y轴,向下增大,即原点在左上角
UILabel类中text属性用于设置标签上的文字,必须为NSString类型字符串值
调用UIView类的addSubview方法后,将label控件添加到当前视图上
运行工程:
这里使用的是Label文本控件的默认样式
二,UILabel其他属性
在ViewController中的viewDidLoad方法中继续添加UILabel其他属性:
- (void)viewDidLoad {
[super viewDidLoad];
UILabel * label = [[UILabel alloc]initWithFrame:CGRectMake(20, 100, 280, 30)];
label.text = @"HelloWorld";
// 设置背景颜色
label.backgroundColor=[UIColor redColor];
// 设置字号和字体
label.font=[UIFont systemFontOfSize:23];
// 设置字体颜色
label.textColor=[UIColor whiteColor];
// 设置对齐方式
// NSTextAlignmentLeft = 0 // 居左对齐
// NSTextAlignmentCenter = 1 // 居中对齐(默认)
// NSTextAlignmentRight = 2 // 居右对齐
label.textAlignment=NSTextAlignmentCenter;
// 设置阴影颜色
label.shadowColor=[UIColor greenColor];
// 设置阴影偏移量,即阴影与本体之间的偏移距离
// 需要设置一个CGSize类型的结构体
// 两个参数分别代表横向偏移量和纵向偏移量
label.shadowOffset=CGSizeMake(10, 10);
[self.view addSubview:label];
}
backgroundColor属性:
设置标签的背景颜色
font属性:
设置UILabel字体相关属性
textColor属性:
设置UILabel字体颜色
TextAlignment属性:
设置UILabel控件中文字的对齐模式,默认居中
对齐模式枚举如下:
NSTextAlignmentLeft = 0 // 居左对齐
NSTextAlignmentCenter = 1 // 居中对齐(默认)
NSTextAlignmentRight = 2 // 居右对齐
shadowColor属性:
设置文字阴影颜色
shadowOffset属性:
设置阴影偏移量,即阴影与本体之间的偏移距离
需要设置一个CGSize类型的结构体
CGSize中两个参数分别代表横向偏移量和纵向偏移量
运行工程,查看效果:
三,UILabel多行显示和换行模式
通过initWithFrame初始化方法创建的Label控件会有一个宽度
如果文字长度超过UILabel控件的宽度,默认不会换行,省缺号代替超出部分
1,Label默认显示长度
增大Label控件高度,设置更长的文字描述:
- (void)viewDidLoad {
[super viewDidLoad];
UILabel * label = [[UILabel alloc]initWithFrame:CGRectMake(20, 100, 280, 100)];
label.text = @"HelloWorld,It is a good idea,So,what do you want to know";
label.backgroundColor=[UIColor blueColor];
label.textColor=[UIColor whiteColor];
[self.view addSubview:label];
}
运行工程发现,UILabel默认单行显示,超出后没有换行,多出的文字被截断了
2,设置显示行数
UILabel默认单行显示,可通过label.numberOfLines设置显示行数
numberOfLines设置为整数值,表示支持显示行数,设置为0,表示无限换行
直到文字结束或到达UILabel控件最底端为止
将numberOfLines设置为0,此时文字换行显示,没有截断
3,设置文字换行和截断模式
可通过label.lineBreakMode设置文字换行和截断模式
lineBreakMode枚举如下:
NSLineBreakByWordWrapping // 以单词为标准换行
NSLineBreakByCharWrapping // 以字符为标准换行
NSLineBreakByTruncatingHead // 头部截断
NSLineBreakByTruncatingTail // 尾部截断
NSLineBreakByTruncatingMiddle// 中间截断
1)以单词为标准换行:
- (void)viewDidLoad {
[super viewDidLoad];
UILabel * label = [[UILabel alloc]initWithFrame:CGRectMake(20, 100, 280, 100)];
label.text = @"HelloWorld,It is a good idea, So, what do you want to know";
label.backgroundColor=[UIColor blueColor];
label.textColor=[UIColor whiteColor];
label.numberOfLines=0;
label.lineBreakMode=NSLineBreakByWordWrapping;
[self.view addSubview:label];
}
以单词为标准换行,what单词因换行被截断显示
2)以字符为标准换行:
- (void)viewDidLoad {
[super viewDidLoad];
UILabel * label = [[UILabel alloc]initWithFrame:CGRectMake(20, 100, 280, 100)];
label.text = @"HelloWorld,It is a good idea, So, what do you want to know";
label.backgroundColor=[UIColor blueColor];
label.textColor=[UIColor whiteColor];
label.numberOfLines=0;
label.lineBreakMode=NSLineBreakByCharWrapping;
[self.view addSubview:label];
}
以字符为标准换行,换行时what单词未被截断,换行显示
3)头部截断:
- (void)viewDidLoad {
[super viewDidLoad];
UILabel * label = [[UILabel alloc]initWithFrame:CGRectMake(20, 100, 280, 100)];
label.text = @"HelloWorld,It is a good idea, So, what do you want to know";
label.backgroundColor=[UIColor blueColor];
label.textColor=[UIColor whiteColor];
label.lineBreakMode=NSLineBreakByTruncatingHead;
[self.view addSubview:label];
}
为了测试头部截断,没有设置numberOfLines,默认单行显示
在不能完全显示的情况下,头部部分被截断显示,省略号代替截断部分
4)尾部截断:
- (void)viewDidLoad {
[super viewDidLoad];
UILabel * label = [[UILabel alloc]initWithFrame:CGRectMake(20, 100, 280, 100)];
label.text = @"HelloWorld,It is a good idea, So, what do you want to know";
label.backgroundColor=[UIColor blueColor];
label.textColor=[UIColor whiteColor];
label.lineBreakMode=NSLineBreakByTruncatingTail;
[self.view addSubview:label];
}
为了测试头部截断,没有设置numberOfLines,默认单行显示
在不能完全显示的情况下,尾部部分被截断显示,省略号代替截断部分
5)中间截断:
- (void)viewDidLoad {
[super viewDidLoad];
UILabel * label = [[UILabel alloc]initWithFrame:CGRectMake(20, 100, 280, 100)];
label.text = @"HelloWorld,It is a good idea, So, what do you want to know";
label.backgroundColor=[UIColor blueColor];
label.textColor=[UIColor whiteColor];
label.numberOfLines=0;
label.lineBreakMode=NSLineBreakByTruncatingMiddle;
[self.view addSubview:label];
}
为了测试头部截断,没有设置numberOfLines,默认单行显示
在不能完全显示的情况下,中间部分被截断显示,省略号代替截断部分