iOS控件學習筆記 - UILabel
UILabel *lbl = [[UILabel alloc]init];
lbl.frame = CGRectMake(100,100,100,20);
lbl.textColor = [UIColor blackColor];
lbl.text = @"測試";
[self.view addSubview:lbl];
設置文本對齊方式
lbl.textAlignment = NSTextAlignmentLeft;
typedef NS_ENUM(NSInteger, NSTextAlignment) {
NSTextAlignmentLeft = 0, // 居左
NSTextAlignmentCenter = 1, // 居中
NSTextAlignmentRight = 2, // 居右
NSTextAlignmentJustified = 3, //段落中的最後一行是自然對齊的
NSTextAlignmentNatural = 4, //默認對齊方式 TODO 測試
} NS_ENUM_AVAILABLE_IOS(6_0);
設置文本行數
lbl.numberOfLines = 0; //不限制行數
lbl.numberOfLines = n; //n行
設置文本自適應
lbl.adjustsFontSizeToFitWidth = YES;//字體大小隨着控件寬度變化
[lbl sizeToFit];//控件大小隨着字體大小變化。
設置用戶是否可以響應用戶操作
lbl.userInteractionEnabled = YES;
設置文本的基線位置
//文本最上端與Label中線對齊,默認值
lbl.baselineAdjustment = UIBaselineAdjustmentAlignBaselines;
//文本中線與Label中線對齊
lbl.baselineAdjustment = UIBaselineAdjustmentAlignCenters;
//文本最底端與Label中線對齊
lbl.baselineAdjustment = UIBaselineAdjustmentNone;
設置文字過長時的顯示格式
lbl.lineBreakMode = NSLineBreakByWordWrapping;
typedef NS_ENUM(NSInteger, NSLineBreakMode) {
NSLineBreakByWordWrapping = 0, //以單詞爲邊界
NSLineBreakByCharWrapping, //以字符爲邊界
NSLineBreakByClipping, //簡單剪裁,到邊界爲止
NSLineBreakByTruncatingHead, //按照"……文字"顯示
NSLineBreakByTruncatingTail, //按照"文字……"顯示
NSLineBreakByTruncatingMiddle //按照"文字……文字"顯示
} NS_ENUM_AVAILABLE(10_0, 6_0);
富文本顯示方式
設置文本行間距
NSString * str = @"這是一段測試性的話語,字打的太少會看不出來結果。多打幾行,看看處理後的效果。這是一段測試性的話語,字打的太少會看不出來結果。多打幾行,看看處理後的效果。這是一段測試性的話語,字打的太少會看不出來結果。多打幾行,看看處理後的效果。這是一段測試性的話語,字打的太少會看不出來結果。多打幾行,看看處理後的效果。";
UILabel * lbl = [[UILabel alloc]initWithFrame:CGRectMake(20, 100, 280, 100)];
lbl.numberOfLines = 0;
lbl.backgroundColor = [UIColor orangeColor];
lbl.font = [UIFont systemFontOfSize:16];
lbl.textColor = [UIColor blackColor];
NSMutableParagraphStyle * pStryle = [[NSMutableParagraphStyle alloc] init];
[pStryle setLineSpacing:20];//設置行間距
NSMutableAttributedString * attrStr = [[NSMutableAttributedString alloc] initWithString:str];
[attrStr addAttribute:NSParagraphStyleAttributeName value:pStryle range:NSMakeRange(0, [str length])];
[lbl setAttributedText:attrStr];
[lbl sizeToFit];//設置控件大小自適應變化
[self.view addSubview:lbl];
效果如下
設置控件是否可編輯
lbl.enabled = NO;