label 的自适应宽度经常会遇到啦,在这里整理一下
CGSize sizeLabel5 = [_label5.text sizeWithFont:_label5.font constrainedToSize:CGSizeMake(MAXFLOAT, sizeLabel5.height) lineBreakMode:NSLineBreakByCharWrapping];
当让,在iOS7 已经快过时了,所以,我们尽量使用下面这种,我认为这种很强大,你将所有属性定义,当成字典填进去,基本一般的都可以实现。
CGSize sizeLabel5 = [_label5.text sizeWithAttributes:[NSDictionary dictionaryWithObjectsAndKeys:_label5.font,NSFontAttributeName, nil]];
_label5.frame = CGRectMake(0, 0, sizeLabel5.width,sizeLabel5.height);
这是自适应高度的
<p style="margin-top: 0px; margin-bottom: 0px; line-height: normal; font-family: Menlo;"><pre name="code" class="objc">float height = [_label5.text boundingRectWithSize:CGSizeMake(250, 0) options:NSStringDrawingUsesLineFragmentOrigin attributes:@{NSFontAttributeName:_label5.font} context:nil].size.height;
CGRect label = _label5.frame;
label.size.height = height;
_label5.frame = label;
当然上面这种自适应高度的对好多控件还适应,比如UITextView
但是,我觉得一般label没必要自适应高度,令
_label5.numberOfLines = 0; 也可以自适应。