OC之UILabel

SONG / 文 发表于2018-01-25 17:08 次阅读 uilabel

一、控件初始化:

 CGRect rect = CGRectMake(100, 200, 50, 50);
 UILabel *label = [[UILabel alloc] initWithFrame:rect];
 //或者 label.frame = rect;
   //设置文字
    label.text =@"我就是这么设置的有什么问题么?";
    //设置字体颜色
    label.textColor = [UIColor redColor];
    //font 设置字体大小,默认17
    //⼀一般方法
    label.font = [UIFont systemFontOfSize:20];
    //加粗方法
    label.font = [UIFont boldSystemFontOfSize:20];
    //指定字体
    label.font = [UIFont fontWithName:@"Arial" size:16];

二、设置标签文本对齐方式:

UIBaselineAdjustmentAlignBaselines = 0,默认,文本最上端与中线对齐。

UIBaselineAdjustmentAlignCenters, 文本中线与label中线对齐。

UIBaselineAdjustmentNone, 文本最低端与label中线对齐。

label.textAlignment = NSTextAlignmentCenter;
//或者 NSTextAlignmentLeft、 NSTextAlignmentRight.
//如果adjustsFontSizeToFitWidth属性设置为YES,这个属性就来控制文本基线的行为。
label.adjustsFontSizeToFitWidth = YES;
label.baselineAdjustment = UIBaselineAdjustmentNone;

三、设置行数:

label.numberOfLines = 2;
//自动缩放字体大小
label.minimumScaleFactor = 0.5;

四、设置属性文本

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;

五、文字超长时,格式:

//以字符为显示单位显示,后面部分省略不显示。
label.lineBreakMode = NSLineBreakByCharWrapping;
//剪切与文本宽度相同的内容长度,后半部分被删除。
label.lineBreakMode = NSLineBreakByClipping;
//前面部分文字以……方式省略,显示尾部文字内容。
label.lineBreakMode = NSLineBreakByTruncatingHead;
//中间的内容以……方式省略,显示头尾的文字内容。
label.lineBreakMode = NSLineBreakByTruncatingMiddle;
//结尾部分的内容以……方式省略,显示头的文字内容。
label.lineBreakMode = NSLineBreakByTruncatingTail;
//以单词为显示单位显示,后面部分省略不显示。
label.lineBreakMode = NSLineBreakByWordWrapping;

六、计算UIlabel 随字体多行后的高度

CGRect bounds = CGRectMake(0, 0, 200, 300);
//计算20行后的Label的Frame
heightLabel = [myLabel textRectForBounds:boundslimitedToNumberOfLines:20];
NSLog(@"%f",heightLabel.size.height);

七、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 = @"我自己也不知道应该输入些什么,反正都是测试使用,请忽略我自己输入了一下什么,哈哈哈哈哈哈哈哈哈哈哈哈";

CGSize msgSie = [msgLabel.text sizeWithFont:fontsconstrainedToSize:size];

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

八、渐变字体Label

UIColor *titleColor = [UIColor colorWithPatternImage:[UIImageimageNamed:@"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];

九、Label添加边框

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

十、添加到试图、清空缓存资源

[self.view addSubview:label];
[label release];

自己的学习笔记,如果有错,请帮忙指出 ......

收藏 赞 (0) 踩 (0)