·經常使用屬性和方法有: 一、建立 CGRect rect = CGRectMake(100, 200, 50, 50); UILabel *label = [[UILabel alloc] initWithFrame:rect]; 二、text //設置和讀取文本內容,默認爲nil label.text = @」文本信息」; //設置內容 NSLog(@」%@」, label.text); //讀取內容 三、textColor //設置文字顏色,默認爲黑色 lable.textColor = [UIColor redColor]; 四、font //設置字體大小,默認17 label.font = [UIFont systemFontOfSize:20]; //⼀通常方法 label.font = [UIFont boldSystemFontOfSize:20]; //加粗方法 label.font = [UIFont fontWithName:@"Arial" size:16]; //指定 字體的方法 //還有⼀一種從外部導入字體的方法。 五、textAlignment //設置標籤文本對齊方式。 label.textAlignment = NSTextAlignmentCenter; //還有 NSTextAlignmentLeft、 NSTextAlignmentRight. 六、numberOfLines //標籤最多顯示行數,若是爲0則表示多行。 label.numberOfLines = 2; 七、enabled //只是決定了Label的繪製方式,將它設置 爲NO將會使文本變暗,表示它沒有激活,這時向它設置顏色值是無效的。 label.enable = NO; 八、highlighted //是否高亮顯示 label.highlighted = YES; label.highlightedTextColor = [UIColor orangeColor]; //高亮 顯示時的文本顏色 九、ShadowColor //設置陰影顏色 [label setShadowColor:[UIColor blackColor]]; 十、ShadowOffset //設置陰影偏移量 [label setShadowOffset:CGSizeMake(-1, -1)]; 十一、baselineAdjustment //若是adjustsFontSizeToFitWidth屬性設 置爲YES,這個屬性就來控制文本基線的行爲。 label.baselineAdjustment = UIBaselineAdjustmentNone; UIBaselineAdjustmentAlignBaselines = 0,默認,文本最上端與中線對齊。 UIBaselineAdjustmentAlignCenters, 文本中線與label中線對齊。 UIBaselineAdjustmentNone, 文本最低端與label中線對齊。 十二、Autoshrink //是否自動收縮 Fixed Font Size 默認,若是Label寬度小於文字長度時時,文字大小不自動縮放 minimumScaleFactor 設置最小收縮比例,若是Label寬度小於文字長度時,文字 進行收縮,收縮超過比例後,中止收縮。 minimumFontSize 設置最小收縮字號,若是Label寬度小於文字長度時,文字字號 減少,低於設定字號後,再也不減少。//6.0之後再也不使用了。 label.minimumScaleFactor = 0.5; 1三、adjustsLetterSpacingToFitWidth //改變字母之間的間距來適應Label大小 myLabel.adjustsLetterSpacingToFitWidth = NO; 1四、 lineBreakMode //設置文字過長時的顯示格式 label.lineBreakMode = NSLineBreakByCharWrapping;以字符爲顯示單位顯 示,後面部分省略不顯示。 label.lineBreakMode = NSLineBreakByClipping;剪切與文本寬度相同的內 容長度,後半部分被刪除。 label.lineBreakMode = NSLineBreakByTruncatingHead;前面部分文字 以……方式省略,顯示尾部文字內容。 label.lineBreakMode = NSLineBreakByTruncatingMiddle;中間的內容 以……方式省略,顯示頭尾的文字內容。 label.lineBreakMode = NSLineBreakByTruncatingTail;結尾部分的內容 以……方式省略,顯示頭的文字內容。 label.lineBreakMode = NSLineBreakByWordWrapping;以單詞爲顯示單位顯 示,後面部分省略不顯示。 1五、 adjustsFontSizeToFitWidth //設置字體大小適應label寬度 label.adjustsFontSizeToFitWidth = YES; 1六、attributedText:設置標籤屬性文本。 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; 1七、豎排文字顯示每一個文字加一個換行符,這是最方便和簡單的實現方式。 label.text = @"請\n豎\n直\n方\n向\n排\n列"; label.numberOfLines = [label.text length]; 1八、計算UIlabel 隨字體多行後的高度 CGRect bounds = CGRectMake(0, 0, 200, 300); heightLabel = [myLabel textRectForBounds:bounds limitedToNumberOfLines:20]; //計算20行後的Label的Frame NSLog(@"%f",heightLabel.size.height); 1九、UILabel根據字數多少自動實現適應高度 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,咱們能夠經過webservice服務提 交給.net應用程序,這裏我簡單處理,直接打印出來,拷貝到.net應用環境中使 用。"; 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]; 2一、Label添加邊框 titleLabel.layer.borderColor = [[UIColor grayColor] CGColor]; titleLabel.layer.borderWidth = 2;
在iOS中默認的UILabel中的文字在豎直方向上只能居中對齊,博主參考國外網站,從UILabel繼承了一個新類,實現了居上對齊,居中對齊,居下對齊。具體以下: #import <UIKit/UIKit.h> typedef enum { VerticalAlignmentTop = 0, // default VerticalAlignmentMiddle, VerticalAlignmentBottom, } VerticalAlignment; @interface myUILabel : UILabel { @private VerticalAlignment _verticalAlignment; } @property (nonatomic) VerticalAlignment verticalAlignment; @end // // myUILabel.m // // // Created by yexiaozi_007 on 3/4/13. // Copyright (c) 2013 yexiaozi_007. All rights reserved. // #import "myUILabel.h" @implementation myUILabel @synthesize verticalAlignment = verticalAlignment_; -(id)initWithFrame:(CGRect)frame { if (self = [super initWithFrame:frame]) { self.verticalAlignment = VerticalAlignmentMiddle; } return self; } -(void)setVerticalAlignment:(VerticalAlignment)verticalAlignment { verticalAlignment_ = verticalAlignment; [self setNeedsDisplay]; } -(CGRect)textRectForBounds:(CGRect)bounds limitedToNumberOfLines:(NSInteger)numberOfLines { CGRect textRect = [super textRectForBounds:bounds limitedToNumberOfLines:numberOfLines]; switch (self.verticalAlignment) { case VerticalAlignmentTop: textRect.origin.y = bounds.origin.y; break; case VerticalAlignmentBottom: textRect.origin.y = bounds.origin.y + bounds.size.height - textRect.size.height; break; case VerticalAlignmentMiddle: // Fall through. default: textRect.origin.y = bounds.origin.y + (bounds.size.height - textRect.size.height) / 2.0; } return textRect; } -(void)drawTextInRect:(CGRect)requestedRect { CGRect actualRect = [self textRectForBounds:requestedRect limitedToNumberOfLines:self.numberOfLines]; [super drawTextInRect:actualRect]; } @end 在使用時: lbl_mylabel = [[myUILabel alloc] initWithFrame:CGRectMake(20, 50, 150, 600)]; UIColor *color = [UIColor colorWithPatternImage:[UIImage imageNamed:@"halfTransparent.png"]];//使用半透明圖片做爲label的背景色 lbl_mylabel.backgroundColor = color; lbl_mylabel.textAlignment = UITextAlignmentLeft; lbl_mylabel.textColor = UIColor.whiteColor; lbl_mylabel.lineBreakMode = UILineBreakModeWordWrap; lbl_mylabel.numberOfLines = 0; [lbl_mylabel setVerticalAlignment:VerticalAlignmentTop]; [self addSubview:lbl_mylabel];
//學習內容 /* 1.控件 UIView UILabel UITextField UITextView UIButton 2.字體、大小、單位、顏色 */ UILabel *label = [[UILabel alloc] initWithFrame:CGRectMake(10, 30, 300, 260)]; label.text = @"Label Text Content, This is a text label things attribute";//默認爲空 label.font = [UIFont systemFontOfSize:17];//默認使用系統的17 label.textColor = [UIColor orangeColor];//默認使用文本黑色 label.shadowColor = [UIColor lightGrayColor];//默認沒有陰影 label.shadowOffset = CGSizeMake(1,0);//默認是一個向上的陰影(0,-1) label.textAlignment = NSTextAlignmentCenter;//默認是左對齊 label.lineBreakMode = NSLineBreakByTruncatingTail;//段落樣式,默認是最後截斷尾巴,用...代替 //富文本的基本數據類型,屬性字符串。以此爲基礎,若是這個設置了相應的屬性,則會忽略上面設置的屬性,默認爲空 NSString *string = label.text; const CGFloat fontSize = 16.0; NSMutableAttributedString *attrString = [[NSMutableAttributedString alloc] initWithString:string]; NSUInteger length = [string length]; //設置字體 UIFont *baseFont = [UIFont systemFontOfSize:fontSize]; [attrString addAttribute:NSFontAttributeName value:baseFont range:NSMakeRange(0, length)];//設置全部的字體 UIFont *boldFont = [UIFont boldSystemFontOfSize:fontSize]; [attrString addAttribute:NSFontAttributeName value:boldFont range:[string rangeOfString:@"Text"]];//設置Text這四個字母的字體爲粗體 //設置傾斜,須要導入coreText UIFont *italicFont = GetVariationOfFontWithTrait(baseFont, kCTFontTraitItalic); [attrString addAttribute:NSFontAttributeName value:italicFont range:[string rangeOfString:@"Label"]]; // 設置顏色 UIColor *color = [UIColor redColor]; [attrString addAttribute:NSForegroundColorAttributeName value:color range:[string rangeOfString:@"Content"]]; [attrString addAttribute:NSBackgroundColorAttributeName value:[UIColor blueColor] range:[string rangeOfString:@"ent"]]; //能夠對這些屬性設置值 //字體名稱有如下: // label.font = [UIFont fontWithName:@"Arial-BoldItalicMT" size:24]; [attrString addAttribute:NSFontAttributeName value:[UIFont fontWithName:@"Verdana-BoldItalic" size:18] range:[string rangeOfString:@"Label"]]; label.numberOfLines = 2; NSMutableParagraphStyle * style = [[NSParagraphStyle defaultParagraphStyle] mutableCopy]; style.lineSpacing = 10;//增長行高 style.headIndent = 10;//頭部縮進,至關於左padding style.tailIndent = -10;//至關於右padding style.lineHeightMultiple = 1.5;//行間距是多少倍 style.alignment = NSTextAlignmentLeft;//對齊方式 style.firstLineHeadIndent = 20;//首行頭縮進 style.paragraphSpacing = 10;//段落後面的間距 style.paragraphSpacingBefore = 20;//段落以前的間距 [attrString addAttribute:NSParagraphStyleAttributeName value:style range:NSMakeRange(0, length)]; [attrString addAttribute:NSKernAttributeName value:@2 range:NSMakeRange(0, length)];//字符間距 2pt [attrString addAttribute:NSStrokeColorAttributeName value:[UIColor blueColor] range:[string rangeOfString:@"is"]];//設置文字描邊顏色,須要和NSStrokeWidthAttributeName設置描邊寬度,這樣就能使文字空心 [attrString addAttribute:NSStrokeWidthAttributeName value:@2 range:[string rangeOfString:@"is"]];//空心字,文字邊框描述 [attrString addAttribute:NSUnderlineStyleAttributeName value:@(NSUnderlineStyleSingle) range:[string rangeOfString:@"text"]];//下劃線 [attrString addAttribute:NSUnderlineStyleAttributeName value:@(NSUnderlineStyleThick) range:[string rangeOfString:@"label"]];//厚的下劃線 [attrString addAttribute:NSStrikethroughStyleAttributeName value:@(NSUnderlinePatternSolid | NSUnderlineStyleSingle) range:[string rangeOfString:@"things"]];//刪除線 [attrString addAttribute:NSStrikethroughColorAttributeName value:[UIColor blueColor] range:[string rangeOfString:@"things"]];//刪除線藍色 label.attributedText = attrString; label.highlightedTextColor = [UIColor redColor];//設置文本高亮顯示顏色,與highlighted一塊兒使用。 label.highlighted = NO; //高亮狀態是否打開 label.enabled = YES;//設置文字內容是否可變 label.userInteractionEnabled = YES;//設置標籤是否忽略或移除用戶交互。默認爲NO label.baselineAdjustment = UIBaselineAdjustmentNone;//若是adjustsFontSizeToFitWidth屬性設置爲YES,這個屬性就來控制文本基線的行爲。 // UIBaselineAdjustmentAlignBaselines=0,默認,文本最上端與中線對齊。 // UIBaselineAdjustmentAlignCenters, 文本中線與label中線對齊。 // UIBaselineAdjustmentNone, 文本最低端與label中線對齊。; [self.view addSubview:label]; /* lineSpacing; 來增長行距 paragraphSpacing; alignment; 對齊 firstLineHeadIndent; 段落開始的縮排像素 headIndent; 可調整所有文字的縮排距離,可看成左邊 padding 使用 tailIndent; 可調整文字尾端的縮排距離。須要注意的是,這裏指定的值能夠看成文字顯示的寬、而也可看成右邊 padding 使用,依據輸入的正負值而定: lineBreakMode; minimumLineHeight; maximumLineHeight; 而針對不一樣的字型與字號,咱們能夠透過指定最大與最小行距(maximumLineHeight 與 minimumLineHeight)來避免太高或過窄的情況發生。 baseWritingDirection; lineHeightMultiple; 想要調整行距,能夠透過搭配使用 lineHeightMultiple 更改行距倍數 paragraphSpacingBefore; 而如果文章內容有分段落的話,也能夠透過指定段落結尾距離(paragraphSpacing)以及段落開頭距離 //獲取斜體 UIFont * GetVariationOfFontWithTrait(UIFont *baseFont, CTFontSymbolicTraits trait) { CGFloat fontSize = [baseFont pointSize]; CFStringRef baseFontName = (__bridge CFStringRef)[baseFont fontName]; CTFontRef baseCTFont = CTFontCreateWithName(baseFontName, fontSize, NULL); CTFontRef ctFont = CTFontCreateCopyWithSymbolicTraits(baseCTFont, 0, NULL, trait, trait); NSString *variantFontName = CFBridgingRelease(CTFontCopyName(ctFont, kCTFontPostScriptNameKey)); UIFont *variantFont = [UIFont fontWithName:variantFontName size:fontSize]; CFRelease(ctFont); CFRelease(baseCTFont); return variantFont; };