UILabel 是一个文字区块,通常是用来描述某一个栏位的意义,例如说明输入框的内容,算是一个很常用的物件。
建立一个 UILabel
什么是 CGRect
使用 Label 之前,要先定义文字区块的大小,这里我们使用的是 CGRect 物件 ,CGRect 是一个距形区块 (Rectangle) 的意思,这个区块代表了 Label 的区域范围,这个物件我们要给他座标与尺寸,一个座标需要 X ,Y 两个点,一个尺寸则是由宽、高两个数据组成,顺便说一个 CGPoint, CGSize 这两个也是座标与尺寸,所以我也可以说 一个 CGRect 是由 一个 CGPoint 加上 一个 CGSize。
这个距形越大,Label 的区块就越大,而建立 CGRect 的方式是使用 CGRectMake ,如下面的范例:
- CGRectMake(X, Y, Width, Height);
建构 Label
建构 Label 时,要指定 Label 的区域范围,也就是把上一步建立的 CGRect 指定给 Label。
- UILabel *label = [[UILabel alloc] initWithFrame: CGRect];
设定 Label 文字内容与颜色
- label.text = @"xxxxxx";
- [label setTextColor:[UIColor blackColor]]
设定 Label 背景色
上一步设定文字颜色时,我使用的是 blackColor ,这是 Obj-C 内建的色票,但是内建的色票不一定能满足我们的需求,另一个颜色的设定方式,是直接使用 RGB 三原色,分别设定 colorWithRed 红, green 绿, blue 蓝,最后 UIColor 还支援一个透明度 alpha 的设定。
- UIColor *bg = [UIColor colorWithRed:200/255.0f green:200/255.0f blue:150/205.0f alpha:1.0];
- [label setBackgroundColor:bg];
一个简单的 Label 文字建立方式范例如下:
- int labelHeight = 50;
- int width = 40;
- CGRect labelFrame = CGRectMake(1, labelHeight , width - 2, labelHeight);
- UILabel *label = [[UILabel alloc] initWithFrame:labelFrame];
- [label setTextColor:[UIColor blackColor]];
- label.text = @"中文字体";
- UIColor *bg = [UIColor colorWithRed:200/255.0f green:200/255.0f blue:150/205.0f alpha:1.0];
- [label setBackgroundColor:bg];
设定 Label 字型与大小
- UIFont *font = [UIFont fontWithName:@"标楷体" size:32];
- [label setFont: font];
多行文字
Label 的文字行数,预设是只有一行,当文字超过一行时,Label 后面的文字会自动转换成「...」,如果我们需要多行文字,可以设定 numberOfLines 的值大於 1,1 代表 1 行,2 就代表 2 行。
- label.numberOfLines = 5;
Label Event
Label 也可以绑定各种事件,如点击,拖拉等等,但是 Obj-C 的 Label 预设是不能有任何 event 的,所以在绑定 event 之前,我们必须先设定 userInteractionEnabled = YES,这样绑上去的 event 才会有作用。
- labe.userInteractionEnabled = YES
- // Label Code
- label.userInteractionEnabled = YES;
- UITapGestureRecognizer *tapGesture =
- [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(labelClicked:)];
- [label addGestureRecognizer:tapGesture];
- - (void) labelClicked:(id) sender {
- NSLog(@"Click label.");
- }