UILabel 的常見屬性和方法:
//建立UIlabel對象
UILabel* label = [[UILabel alloc] initWithFrame:self.view.bounds];
//設定顯示文本
label.text = @"This is a UILabel Demo,";
//設定文本字型
label.font = [UIFont fontWithName:@"Arial" size:35];
//設定文本顏色
label.textColor = [UIColor yellowColor];
//設定文本水平顯示位置
label.textAlignment = UITextAlignmentCenter;
//設定背景顏色
label.backgroundColor = [UIColor blueColor];
//設定單詞折行方式
label.lineBreakMode = UILineBreakModeWordWrap;
//設定label是否可以顯示多行,0則顯示多行
label.numberOfLines = 0;
//根據內容大小,動態設定UILabel的高度
CGSize size = [label.text sizeWithFont:label.font constrainedToSize:self.view.bounds.size lineBreakMode:label.lineBreakMode];
CGRect rect = label.frame;
rect.size.height = size.height;
label.frame = rect;
附上UILineBreakMode的各種情況,本人沒有一一實驗效果。
typedef enum {
UILineBreakModeWordWrap = 0,
UILineBreakModeCharacterWrap,
UILineBreakModeClip,
UILineBreakModeHeadTruncation,
UILineBreakModeTailTruncation,
UILineBreakModeMiddleTruncation,
} UILineBreakMode;
UILineBreakModeWordWrap = 0,
以單詞為單位換行,以單位為單位截斷。
UILineBreakModeCharacterWrap,
以字元為單位換行,以字元為單位截斷。
UILineBreakModeClip,
以單詞為單位換行。以字元為單位截斷。
UILineBreakModeHeadTruncation,
以單詞為單位換行。如果是單行,則開始部分有省略符號。如果是多行,則中間有省略符號,省略符號後面有4個字元。
UILineBreakModeTailTruncation,
以單詞為單位換行。無論是單行還是多行,都是末尾有省略符號。
UILineBreakModeMiddleTruncation,
以單詞為單位換行。無論是單行還是多行,都是中間有省略符號,省略符號後面只有2個字元。
特殊效果實現:
1. 豎排文字顯示
要實現這個效果,網友給出了四種方法:
1.1 旋轉UILabel,這種方法不可選,旋轉之後每個字型的方向還是有問題。
1.2 每個文字加一個分行符號,這是最方便和簡單的實現方式。
label.text
= @"請\n豎\n直\n方\n向\n排\n列";
label.numberOfLines = [label.text length];
1.3 建立新的canvas, 在UILabel上畫出豎排文字。
1.4 重寫UILabel類,添加豎排文字顯示功能。
參考 http://www.cnblogs.com/salam/archive/2012/05/31/UILabel.html
文字加粗效果: