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.");
- }
回應 (Leave a comment)