您的位置:首页 > 产品设计 > UI/UE

UILable的使用,文本高度的计算boundingRectWithSize

2016-05-26 22:55 591 查看
UILable显示字符串的视图控件

UILable是UIView的子视图,拥有和view一样的属性,同时也有自己特有的属性

如:显示内容;显示内容大小、对齐方式、显示颜色;多行显示等

// 实例化
UILabel *label01 = [[UILabel alloc] initWithFrame:CGRectMake(10.0, 50.0, 300.0, 30.0)];
[self.view addSubview:label01];
label01.backgroundColor = [UIColor yellowColor];

// 显示内容,默认无内容显示
NSString *text = @"I am learning iOS develping";
label01.text = text;
// 显示颜色,默认黑色
label01.textColor = [UIColor redColor];
// 显示大小,设置字体大小不要超过标签控件的高度
label01.font = [UIFont systemFontOfSize:16.0];
// 显示对齐方式,默认左对齐
label01.textAlignment = NSTextAlignmentRight;

UILabel *label02 = [[UILabel alloc] initWithFrame:CGRectMake(10.0, 100.0, 300.0, 100.0)];
[self.view addSubview:label02];
// 背景色为透明颜色
label02.backgroundColor = [UIColor clearColor];
// 显示颜色,默认黑色
label02.textColor = [UIColor redColor];
// 显示大小,设置字体大小不要超过标签控件的高度
// 方法1 只设置字体大小
label02.font = [UIFont systemFontOfSize:12.0];
// 方法2 同时设置字体,及字体大小
label02.font = [UIFont fontWithName:@"Verdana-Bold" size:12.0];
// 显示对齐方式,默认左对齐
label02.textAlignment = NSTextAlignmentLeft;
// 显示内容
NSString *text02 = @"编程语言是一种语言,只是一种语言。随着时光推移,只要你理解了一种语言的原理";
label02.text = text02;
// 自适应宽度显示,即缩小字体
//    label02.adjustsFontSizeToFitWidth = YES;
// 多行显示设置
text02 = @"编程语言是一种语言,只是一种语言。随着时光推移,只要你理解了一种语言的原理,你会发现各种语言之间的相似之处 。你所选择的语言,你应该觉得“舒服”,并且能够写出有效(而且简洁)的代码。最重要的,让语言去适应项目,反之亦然";
label02.text = text02;
// 多行显示,设置显示行数,0时表示不限制行数,2表示只显示2行,依次类推,默认显示1行
label02.numberOfLines = 0;
// 换行模式,通常结合多行显示属性一起设置
label02.lineBreakMode = NSLineBreakByWordWrapping;


// 计算显示内容高度,计算时的字体大小与标签控件字体大小一致
CGSize size = [label02.text boundingRectWithSize:CGSizeMake(label02.bounds.size.width, MAXFLOAT) options:NSStringDrawingUsesLineFragmentOrigin attributes:@{NSFontAttributeName:[UIFont systemFontOfSize:12.0]} context:nil].size;
// 重新设置lable02的高度
CGRect rect = label02.frame;
rect.size.height = size.height;
label02.frame = rect;


// 阴影属性(无效果???)
label02.shadowColor = [UIColor yellowColor];
label02.shadowOffset = CGSizeMake(label02.bounds.size.width + 10.0, label02.bounds.size.height + 10.0);

// 设置可变字符
NSMutableAttributedString *attributedText = [[NSMutableAttributedString alloc] initWithString:text02];
NSString *setText = @"编程语言是一种语言";
NSRange range = [text02 rangeOfString:setText];
// 颜色
[attributedText addAttribute:NSForegroundColorAttributeName
value:[UIColor brownColor]
range:range];
// 字体
[attributedText addAttribute:NSFontAttributeName
value:[UIFont systemFontOfSize:20.0]
range:range];
label02.attributedText = attributedText;
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: