iOS中,UILabel并不能根据文字的多少,自动调整label标签的宽度。当label有背景颜色后,这会让视图很不美观。
其实方法很简单,stackoverflow上有很多答案,但百度却搜不到这些答案···(所以还是google吧)
//属性要设成strong,不然初始化后会马上释放掉
<p class="p1"><span class="s1">@property</span><span class="s2"> (</span><span class="s1">strong</span><span class="s2">, </span><span class="s1">nonatomic</span><span class="s2">) </span><span class="s1">IBOutlet</span><span class="s2"> </span><span class="s3">UILabel</span><span class="s2"> *showHall;</span></p>
_showHall = [[UILabel alloc] init];
_showHall.text = _recordInfo.hallName;
[_showHall setFont:[UIFont fontWithName:@"Helvetica" size:15.0]];
_showHall.backgroundColor = AiMovieGreen;
_showHall.textColor = [UIColor whiteColor];
//不能通过storyboard创建label,不然没法重新设定frame
CGFloat labelWidth = [_showHall.text sizeWithAttributes:@{NSFontAttributeName:[UIFont fontWithName:@"Helvetica" size:15.0]}].width;
_showHall.frame = CGRectMake(162.0, 77.0, labelWidth, 21.0);
[self.tableView addSubview:_showHall];