1、iOS7 之后 UILable显示多行
// 这个在某些场景下会出问题,没找到原因;
UILabel *lable = [[UILabel alloc] init];
lable.text = @"当您有新中奖订单,启动程序时通过动画提醒您。为避免过于频繁,高频彩不会提醒。";
[self.tableView addSubview: lable];
lable.backgroundColor = [UIColor colorWithRed:0.370 green:1.000 blue:0.940 alpha:1.000];
<span style="color:#FF6666;">lable.numberOfLines = 0; // 设置任意行
CGSize size = [lable.text boundingRectWithSize:[UIScreen mainScreen].bounds.size // 这指的是最大限制值,还可以采用 CGSizeMake(320, MAXFLOAT) 这种方式
options:NSStringDrawingUsesLineFragmentOrigin // 采用这种方式最合适
attributes:@{NSFontAttributeName : [UIFont systemFontOfSize:13]} // 设置属性字典
context:nil].size; // iOS7之后的方法 // 有context的地方一般设置为nil </span>
// [lable.text boundingRectWithSize:CGSizeMake(320, MAXFLOAT)
options:NSStringDrawingUsesLineFragmentOrigin
attributes:@{NSFontAttributeName : [UIFont systemFontOfSize:13]}
context:nil];
lable.frame = (CGRect){{contentX,contentY},size};; // 记住frame的高度不宜过大(更不能使用MAXFLOAT),否则会不显示。
网络上的:测试过没问题
UILabel *label = [[UILabel alloc]initWithFrame:CGRectMake(0, 100, 300, 100)];
<span style="color:#FF6666;"> label.numberOfLines = 0;
label.lineBreakMode = NSLineBreakByWordWrapping;</span>
label.text = @"本店于十一期间特推出一系列优惠,限时限量敬请选购!沙发:钻石品质,首领风范!床垫:华贵典雅,彰显时尚!尊贵而不失奢华,典雅却不失自然!温馨和浪漫的生活,我们与你一同创造!";
<span style="color:#FF6666;">CGSize size = [label sizeThatFits:CGSizeMake(label.frame.size.width, MAXFLOAT)];</span>
label.frame =CGRectMake(0, 100, 300, <span style="color:#FF0000;">size.height</span>);
label.font = [UIFont systemFontOfSize:14];
[self.view addSubview:label];