iOS開發基礎控件--UILabel

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類,添加豎排文字顯示功能。

更多 0
相關文章
相關標籤/搜索