UILabel 的常見屬性和方法:ios
//建立UIlabel對象canvas
UILabel* label = [[UILabel alloc] initWithFrame:self.view.bounds];app
//設置顯示文本字體
label.text = @"This is a UILabel Demo";spa
//設置陰影.net
label.shadowColor = [UIColor redColor];code
label.shadowOffset = CGSizeMake(1.0,1.0);對象
//設置高亮 blog
label.highlighted = YES;ip
label.highlightedTextColor = [UIColre orangeColor];
//設置文本字體
label.font = [UIFont fontWithName:@"Arial" size:35];
//設置字體:粗體,正常的是 SystemFontOfSize label1.font = [UIFont boldSystemFontOfSize:20];
//設置文本顏色
label.textColor = [UIColor yellowColor];
//設置文本水平顯示位置(中心)
label.textAlignment = UITextAlignmentCenter;
//設置背景顏色
label.backgroundColor = [UIColor blueColor];
//設置單詞折行方式
label.lineBreakMode = UILineBreakModeWordWrap;
//設置label是否能夠顯示多行,0則顯示多行
label.numberOfLines = 0;
//設置字體大小適宜label寬度
label.adjustsFontSizeToFitWidth = YES;
//設置label中的文字是否可變,默認是YES
label.enabled = NO;
//根據內容大小,動態設置UILabel的高度 (ios 7 過時了,被其餘方法替換掉了)
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;
//設置文字過長時的顯示格式
6.lineBreakMode:設置標籤文字過長時的顯示方式
label.lineBreakMode = NSLineBreakByCharWrapping;以字符爲顯示單位顯示,後面部分省略不顯示。 label.lineBreakMode = NSLineBreakByClipping;剪切與文本寬度相同的內容長度,後半部分被刪除。 label.lineBreakMode = NSLineBreakByTruncatingHead;前面部分文字以……方式省略,顯示尾部文字內容。 label.lineBreakMode = NSLineBreakByTruncatingMiddle;中間的內容以……方式省略,顯示頭尾的文字內容。 label.lineBreakMode = NSLineBreakByTruncatingTail;結尾部分的內容以……方式省略,顯示頭的文字內容。 label.lineBreakMode = NSLineBreakByWordWrapping;以單詞爲顯示單位顯示,後面部分省略不顯示。 label4.baselineAdjustment = UIBaselineAdjustmentNone; // typedef enum { // UIBaselineAdjustmentAlignBaselines, // UIBaselineAdjustmentAlignCenters, // UIBaselineAdjustmentNone, // } UIBaselineAdjustment;
附上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類,添加豎排文字顯示功能。