博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
IOS开发实战:UILabel文本控件
阅读量:2222 次
发布时间:2019-05-08

本文共 4945 字,大约阅读时间需要 16 分钟。

一,创建UILabel文本控件项目

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文本控件的默认样式


二,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,默认单行显示在不能完全显示的情况下,中间部分被截断显示,省略号代替截断部分
你可能感兴趣的文章
c结构体、c++结构体和c++类的区别以及错误纠正
查看>>
Linux下查看根目录各文件内存占用情况
查看>>
A星算法详解(个人认为最详细,最通俗易懂的一个版本)
查看>>
利用栈实现DFS
查看>>
(PAT 1019) General Palindromic Number (进制转换)
查看>>
(PAT 1073) Scientific Notation (字符串模拟题)
查看>>
(PAT 1080) Graduate Admission (排序)
查看>>
Play on Words UVA - 10129 (欧拉路径)
查看>>
mininet+floodlight搭建sdn环境并创建简答topo
查看>>
【linux】nohup和&的作用
查看>>
Set、WeakSet、Map以及WeakMap结构基本知识点
查看>>
【NLP学习笔记】(一)Gensim基本使用方法
查看>>
【NLP学习笔记】(二)gensim使用之Topics and Transformations
查看>>
【深度学习】LSTM的架构及公式
查看>>
【python】re模块常用方法
查看>>
剑指offer 19.二叉树的镜像
查看>>
剑指offer 20.顺时针打印矩阵
查看>>
剑指offer 21.包含min函数的栈
查看>>
剑指offer 23.从上往下打印二叉树
查看>>
剑指offer 25.二叉树中和为某一值的路径
查看>>