iOS 自动调整标签高度

问题描述 投票:0回答:1

我正在使用以下代码自动调整 UITableView 中标签的高度。它大部分时间都有效,但某些时候文本会被截断。我的代码有什么问题,或者我需要添加什么吗? (代码基于这个答案

UILabel *textLabel = ((UILabel *)[cell viewWithTag:3]);
textLabel.text = text;

CGSize maximumLabelSize = CGSizeMake(296, FLT_MAX);

CGSize expectedLabelSize = [text sizeWithFont:textLabel.font constrainedToSize:maximumLabelSize lineBreakMode:textLabel.lineBreakMode];

//adjust the label the the new height.
CGRect newFrame = textLabel.frame;
newFrame.size.height = expectedLabelSize.height;
textLabel.frame = newFrame;
ios uitableview uilabel cgrect
1个回答
1
投票

在 iOS 7 中

sizeWithFont: constrainedToSize: lineBreakMode:
已弃用,现在您应该使用:

 CGSize maxSize = CGSizeMake(296.f, FLT_MAX);
 CGRect labRect = [someText boundingRectWithSize:maxSize options:NSStringDrawingUsesLineFragmentOrigin attributes:@{NSFontAttributeName:textLabel.font} context:nil];


 textLabel.frame = CGRectMake(0, 0, maxSize.width, labRect.size.height);
 textLabel.text = someText;
© www.soinside.com 2019 - 2024. All rights reserved.