IOS开发实战:UILabel文本控件

一,创建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,默认单行显示
在不能完全显示的情况下,中间部分被截断显示,省略号代替截断部分
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

BraveWangDev

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值