iOS UILabel講解以及根據(jù)字符串長(zhǎng)度自動(dòng)適應(yīng)寬度和高度

1、創(chuàng)建

CGRect rect = CGRectMake(100, 200, 50, 50);

UILabel *label = [[UILabel alloc] initWithFrame:rect];

2、text //設(shè)置和讀取文本內(nèi)容,默認(rèn)為nil

label.text = @”文本信息”; //設(shè)置內(nèi)容

NSLog(@”%@”, label.text); //讀取內(nèi)容

3、textColor //設(shè)置文字顏色,默認(rèn)為黑色

lable.textColor = [UIColor redColor];

4、font //設(shè)置字體大小,默認(rèn)17

label.font = [UIFont systemFontOfSize:20]; //?一般方法

label.font = [UIFont boldSystemFontOfSize:20]; //加粗方法

label.font = [UIFont fontWithName:@"Arial" size:16]; //指定

字體的方法

//還有?一種從外部導(dǎo)入字體的方法。

5、textAlignment //設(shè)置標(biāo)簽文本對(duì)齊方式。

label.textAlignment = NSTextAlignmentCenter; //還有NSTextAlignmentLeft、NSTextAlignmentRight.

6、numberOfLines //標(biāo)簽最多顯示行數(shù),如果為0則表示多行。

label.numberOfLines = 2;

7、enabled //只是決定了Label的繪制方式,將它設(shè)置

為NO將會(huì)使文本變暗,表示它沒(méi)有激活,這時(shí)向它設(shè)置顏色值是無(wú)效的。

label.enable = NO;

8、highlighted //是否高亮顯示

label.highlighted = YES;

label.highlightedTextColor = [UIColor orangeColor]; //高亮

顯示時(shí)的文本顏色

9、ShadowColor //設(shè)置陰影顏色

[label setShadowColor:[UIColor blackColor]];

10、ShadowOffset //設(shè)置陰影偏移量

[label setShadowOffset:CGSizeMake(-1, -1)];

11、baselineAdjustment //如果adjustsFontSizeToFitWidth屬性設(shè)

置為YES,這個(gè)屬性就來(lái)控制文本基線的行為。

label.baselineAdjustment = UIBaselineAdjustmentNone;

UIBaselineAdjustmentAlignBaselines = 0,默認(rèn),文本最上端與中線對(duì)齊。

UIBaselineAdjustmentAlignCenters,? 文本中線與label中線對(duì)齊。

UIBaselineAdjustmentNone, 文本最低端與label中線對(duì)齊。

12、Autoshrink //是否自動(dòng)收縮

Fixed Font Size 默認(rèn),如果Label寬度小于文字長(zhǎng)度時(shí)時(shí),文字大小不自動(dòng)縮放

minimumScaleFactor 設(shè)置最小收縮比例,如果Label寬度小于文字長(zhǎng)度時(shí),文字

進(jìn)行收縮,收縮超過(guò)比例后,停止收縮。

minimumFontSize 設(shè)置最小收縮字號(hào),如果Label寬度小于文字長(zhǎng)度時(shí),文字字號(hào)

減小,低于設(shè)定字號(hào)后,不再減小。//6.0以后不再使用了。

label.minimumScaleFactor = 0.5;

13、adjustsLetterSpacingToFitWidth //改變字母之間的間距來(lái)適應(yīng)Label大小

myLabel.adjustsLetterSpacingToFitWidth = NO;

14、 lineBreakMode //設(shè)置文字過(guò)長(zhǎng)時(shí)的顯示格式

label.lineBreakMode = NSLineBreakByCharWrapping;以字符為顯示單位顯

示,后面部分省略不顯示。

label.lineBreakMode = NSLineBreakByClipping;剪切與文本寬度相同的內(nèi)

容長(zhǎng)度,后半部分被刪除。

label.lineBreakMode = NSLineBreakByTruncatingHead;前面部分文字

以……方式省略,顯示尾部文字內(nèi)容。

label.lineBreakMode = NSLineBreakByTruncatingMiddle;中間的內(nèi)容

以……方式省略,顯示頭尾的文字內(nèi)容。

label.lineBreakMode = NSLineBreakByTruncatingTail;結(jié)尾部分的內(nèi)容

以……方式省略,顯示頭的文字內(nèi)容。

label.lineBreakMode = NSLineBreakByWordWrapping;以單詞為顯示單位顯

示,后面部分省略不顯示。

15、 adjustsFontSizeToFitWidth //設(shè)置字體大小適應(yīng)label寬度

label.adjustsFontSizeToFitWidth = YES;

16、attributedText:設(shè)置標(biāo)簽屬性文本。

NSString *text = @"first";

NSMutableAttributedString *textLabelStr =

[[NSMutableAttributedString alloc]

initWithString:text];

[textLabelStr

setAttributes:@{NSForegroundColorAttributeName :

[UIColor lightGrayColor], NSFontAttributeName :

[UIFont systemFontOfSize:17]} range:NSMakeRange(11,

10)];

label.attributedText = textLabelStr;

17、豎排文字顯示每個(gè)文字加一個(gè)換行符,這是最方便和簡(jiǎn)單的實(shí)現(xiàn)方式。

label.text = @"請(qǐng)\n豎\n直\n方\n向\n排\n列";

label.numberOfLines = [label.text length];

18、計(jì)算UIlabel 隨字體多行后的高度

CGRect bounds = CGRectMake(0, 0, 200, 300);

heightLabel = [myLabel textRectForBounds:bounds

limitedToNumberOfLines:20]; //計(jì)算20行后的Label的Frame

NSLog(@"%f",heightLabel.size.height);

19、UILabel根據(jù)字?jǐn)?shù)多少自動(dòng)實(shí)現(xiàn)適應(yīng)高度

UILabel *msgLabel = [[UILabel alloc]

initWithFrame:CGRectMake(15, 45, 0, 0)];

msgLabel.backgroundColor = [UIColor lightTextColor];

[msgLabel setNumberOfLines:0];

msgLabel.lineBreakMode = UILineBreakModeWordWrap;

msgLabel.font = [UIFont fontWithName:@"Arial" size:12];

CGSize size = CGSizeMake(290, 1000);

msgLabel.text = @"獲取到的deviceToken,我們可以通過(guò)webservice服務(wù)提

交給.net應(yīng)用程序,這里我簡(jiǎn)單處理,直接打印出來(lái),拷貝到.net應(yīng)用環(huán)境中使

用。";

CGSize msgSie = [msgLabel.text sizeWithFont:fonts

constrainedToSize:size];

[msgLabel setFrame:CGRectMake(15, 45, 290, msgSie.height)];

20、漸變字體Label

UIColor *titleColor = [UIColor colorWithPatternImage:[UIImage

imageNamed:@"btn.png"]];

NSString *title = @"Setting";

UILabel *titleLabel = [[UILabel alloc]

initWithFrame:CGRectMake(0, 0, 80, 44)];

titleLabel.textColor = titleColor;

titleLabel.text = title;

titleLabel.font = [UIFont boldSystemFontOfSize:20];

titleLabel.backgroundColor = [UIColor clearColor];

[self.view addSubview:titleLabel];

[titleLabel release];

21、Label添加邊框

titleLabel.layer.borderColor = [[UIColor grayColor] CGColor];

titleLabel.layer.borderWidth = 2;

//label自適應(yīng)寬度

+ (float)widthAuto:(NSString *)content fontSize:(CGFloat)fontSize contentheight:(CGFloat)height{

// 列寬

//? ? CGFloat contentHeight = height;

// 用何種字體進(jìn)行顯示

UIFont *font = [UIFont systemFontOfSize:fontSize];

// 計(jì)算出顯示完內(nèi)容需要的最小尺寸

CGSize size = CGSizeMake(100, 100);

// 計(jì)算出顯示完內(nèi)容需要的最小尺寸

NSDictionary * tdic = [NSDictionary dictionaryWithObjectsAndKeys:font,NSFontAttributeName,nil];

//ios7方法,獲取文本需要的size,限制寬度

CGSize? actualsize =[content boundingRectWithSize:size options:NSStringDrawingUsesLineFragmentOrigin |NSStringDrawingUsesFontLeading attributes:tdic context:nil].size;

return actualsize.width;

}

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

推薦閱讀更多精彩內(nèi)容