比较长的字符串我们一般都会进行自适应的处理:
例如:
一般定义一个宏,不在里面加,让代码显得清晰
#define LONG_TEXT @"乔布斯是改变世界的天才,他凭敏锐的触觉和过人的智慧,勇于变革,不断创新,引领全球资讯科技和电子产品的潮流,把电脑和电子产品不断变得简约化、平民化,让曾经是昂贵稀罕的电子产品变为现代人生活的一部分。"
用一个string得到这个宏:
NSString *stringtext = LONG_TEXT;
UIFont *font = [UIFont systemFontOfSize:18];
自适应的方法:(它是一个CGRect类型的所以可以用size取得他的宽和高),要改变宽度更改CGSizeMake里面的前一个的值就行了
CGRect autoRect = [stringtext boundingRectWithSize:CGSizeMake(300, 2000) options:NSStringDrawingUsesLineFragmentOrigin attributes:@{NSFontAttributeName:font} context:nil];
然后我们就可以初始化一个UILabel,并设置它的相关属性了:(注意:一定要写行数哦,不然没有效果的,0为无线行)
UILabel *label = [[UILabel alloc]init];
label.frame = CGRectMake(0, 0, autoRect.size.width, autoRect.size.height);
label.font = font;
label.text = stringtext;
//设置行数
label.numberOfLines = 0;
//设置边框(测试的时候用的,用了后注释或者直接删除)
label.layer.borderWidth = 1;
[self .view addSubview:label];
[label release];