本文共 4945 字,大约阅读时间需要 16 分钟。
1,打开Xcode,创建名为HelloWorldText的工程
如何创建工程: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文本控件的默认样式
在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中两个参数分别代表横向偏移量和纵向偏移量
运行工程,查看效果:
通过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,默认单行显示在不能完全显示的情况下,中间部分被截断显示,省略号代替截断部分