无法根据objective-c中标签的文本大小设置单元格大小

我正在尝试聊天应用程序。 聊天工作正常。 面对一些用户界面问题。

1.我正在使用自动布局标签。 所以根据邮件大小自动标签获取展开。 但是,我在UITableViewCell中有标签。 我无法dynamic计算行高。

我的代码:

-(CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath{ CGSize textSize = {268, CGFLOAT_MAX}; CGSize size = [message sizeWithFont:[UIFont fontWithName:@"Helvetica Neue" size:14] constrainedToSize:textSize lineBreakMode:NSLineBreakByWordWrapping]; CGFloat height = size.height < 65 ? 65 : size.height; return height; } 

我的标签子类代码

 - (void)drawTextInRect:(CGRect)rect { self.textInsets = UIEdgeInsetsMake(5, 5, 5, 5); return [super drawTextInRect:UIEdgeInsetsInsetRect(rect, self.textInsets)]; } - (CGSize) intrinsicContentSize { self.textInsets = UIEdgeInsetsMake(5, 5, 5, 5); CGSize superSize = [super intrinsicContentSize] ; superSize.height += self.textInsets.top + self.textInsets.bottom ; superSize.width += self.textInsets.left + self.textInsets.right ; return superSize ; } 

上面的代码适用于小信息,如400到800个字符。 不仅如此,它不工作。 根据标签尺寸,单元尺寸没有增加。 请引导我。

我的输出:

在这里输入图像说明

在上面的截图中,小信息显示时间和完整信息。 如果我们input大文本,20%的信息会被隐藏起来。 请亲引导我 如何解决这个问题?

使用Storyboard作为你的标签,只使用单个标签设置你的标签具有所有4个约束,左,右,上,下设置行数为0.在你的ViewController中使用这2种方法,Table视图会根据你的文本自动设置高度

  -(CGFloat)tableView:(UITableView *)tableView estimatedHeightForRowAtIndexPath:(NSIndexPath *)indexPath { return UITableViewAutomaticDimension; } -(CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath{ return UITableViewAutomaticDimension; }