UILabel類的刨析

對於一個標籤的UILabel類的屬性,方法的詳解。
首先初始化一個labelOne對象的兩種方法:app

//先初始化對象,而後在須要的時候設定labelOne在父視圖上的位置和大小
UILabel * labelOne = [[UILabel alloc]init];
//UILabel * labelOne = [UILabel new];一樣是初始化一個labelOne對象
[labelOne setFrame:CGRectMake(100, 100, 300, 100)];
//直接在初始化的時候設定labelOne在父視圖上的位置和大小
UILabel * labelOne = [[UILabel alloc]initWithFrame:CGRectMake(100, 100, 300, 100)];

設置labelOne的文字(包括文字的顏色、大小和文字的對齊方式)字體

labelOne.text = @"這是一個標籤";

//若是不設置文字顏色,則系統默認顏色爲黑色
labelOne.textColor = [UIColor blackColor];

//若是不設置文字大小,則系統默認大小爲17
labelOne.font = [UIFont systemFontOfSize:17];

//NSTextAlignmentLeft當前的文本相對於labelOne的frame是左對齊
//NSTextAlignmentCenter當前的文本相對於labelOne的frame是居中 
//NSTextAlignmentRight當前的文本相對於labelOne的frame是右對齊
//NSTextAlignmentJustified最後一行天然對齊
//NSTextAlignmentNatural默認對齊腳本

labelOne.textAlignment = NSTextAlignmentLeft;

設置labelOne文本超出labelOne的size時文本的顯示方式:code

labelOne.lineBreakMode = NSLineBreakByWordWrapping;
NSLineBreakByWordWrapping,    //以空格爲邊界,保留單詞(默認設置)
NSLineBreakByCharWrapping,    //保留字符(包括空格)
NSLineBreakByClipping,        //簡單剪裁,到邊界爲止
NSLineBreakByTruncatingHead,  //按照"……標籤"顯示
NSLineBreakByTruncatingTail,  //按照"我……籤"顯示
NSLineBreakByTruncatingMiddle //按照"我是……"顯示

前三個類型這樣說不太形象,可是當它和numberOfLines屬性一塊兒用的時候就能夠很明顯的看出來:對象

labelOne.numberOfLines = 0;
//默認是1,當設置成0的時候若是文本長度超出labelOne的寬度且高度夠的狀況下會自動換行
labelOne.lineBreakMode = NSLineBreakByWordWrapping;
NSLineBreakByWordWrapping,    
//若是高度夠的話,則會根據寬度和文本中單詞的長度來決定一行放幾個完整的單詞,超出的部分則換行
NSLineBreakByCharWrapping,
//和第一個相似,不過是改爲按照每個字符來計算,也就是說在換行的時候不會自動保留完整的單詞,有可能會將其拆開
NSLineBreakByClipping,
//目前親測和第一個好像沒有什麼區別

設置labelOne文本的前景色和投影事件

//首先設置labelOne是否開啓高亮狀態,也就是前景色
labelOne.highlighted = YES;
//設置labelOne的前景色
labelOne.highlightedTextColor = [UIColor redColor];
//設置labelOne的投影的顏色
labelOne.shadowColor = [UIColor blueColor];
//設置labelOne的投影位置,也就是投影的偏移量
labelOne.shadowOffset = CGSizeMake(0, 30);

設置labelOne的其餘屬性ip

//設置labelOne不能夠編輯,自己labelOne在運行以後是不能被編輯的,這裏設置這個屬性爲NO的時候labelOne的文本顏色會變成淺色。
labelOne.enabled = NO;
//設置labelOne是否能夠交互,當設置爲YES的時候,爲labelOne添加手勢以後就會響應手勢的事件,默認是NO。
labelOne.userInteractionEnabled = YES;
//設置labelOne的文本最小的字體大小,當小於這個值的時候,會將字體大小設置爲這個最小值。
labelOne.minimumScaleFactor = 17;
//自動調節labelOne的文本字體大小來適應labelOne的寬度,默認爲NO。
labelOne.adjustsFontSizeToFitWidth = YES;
//微調文本的位置,有三個類型,默認是文本最上端與Label中線對齊。
labelOne.baselineAdjustment = UIBaselineAdjustmentAlignBaselines;
UIBaselineAdjustmentAlignBaselines //文本最上端與Label中線對齊,默認值
UIBaselineAdjustmentAlignCenters   //文本中線與Label中線對齊
UIBaselineAdjustmentNone           //文本最下端與Label中線對齊
//計算在指定的範圍內的labelOne顯示當前行的文本的frame 第一個參數是指定的範圍,第二個參數是labelOne限制多少行,親測以後發現,目前第二個參數暫時不知道用意在什麼地方,不管設置多少行,計算出來的結果只和指定的範圍有關係。
//labelOne textRectForBounds:labelOne.bounds limitedToNumberOfLines:2
NSLog(@"%@",NSStringFromCGRect([labelOne textRectForBounds:labelOne.bounds limitedToNumberOfLines:2]));
//在繪圖的時候,將labelOne的文本繪製到指定的範圍。
- (void)drawTextInRect:(CGRect)rect

設置labelOne的邊框和圓角it

//設置labelOne的邊框寬度
labelOne.layer.borderWidth = 1;
//設置labelOne的邊框顏色
labelOne.layer.borderColor = [UIColor lightGrayColor].CGColor;
//設置labelOne的圓角半徑
labelOne.layer.cornerRadius = 5;
//設置完圓角半徑以後須要對labelOne進行剪裁,把超出的部分剪裁掉才能顯示圓角的效果
labelOne.layer.masksToBounds = YES;

以上是相對於Objective-C的UILabel類的屬性和方法的總結,以後還會更新在Swift下的UILabel類的方法調用和屬性調用的總結,謝謝你們支持。io

相關文章
相關標籤/搜索