动态UITableViewCell内容不会扩展单元格

时间:2016-03-03 16:19:26

标签: ios uitableview autolayout xcode-storyboard

我有一个故事板,里面有几种不同类型的原型单元,UILabels包含动态数据。在我的故事板中,单元格看起来像这样:

enter image description here

UILabel的Lines属性设置为零以允许多行文本。它固定在内容视图的顶部,左侧,右侧和底部的最近邻居(蓝线)。蓝线固定在内容视图的左侧和右侧,顶部是UILabel,底部是UITextView。UITextView固定在底部,左侧和右侧的内容视图中,并固定到蓝线上在顶部。

当我运行应用程序时,我得到以下内容:

enter image description here

所以UILabel正在强制其他所有内容,但是单元格的高度并没有像我想要的那样改变,因此文本视图被单元格的固定高度剪掉了。我的假设是,如果所有内容都固定在顶部和底部,那么内容视图将被强制扩展。我在这里错过了什么?谢谢!

3 个答案:

答案 0 :(得分:4)

您似乎已正确设置了约束,只需确保代理如下:

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

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

(如果您的约束从上到下正确设置)就是这样,您不必做任何其他事情,自动布局将巧妙地完成其工作。

答案 1 :(得分:1)

除了自动布局约束
在返回单元格和 HeightForRowAtIndexPath 方法之前尝试 cell.contentView.LayoutIfNeeded 语句 in cellForRowIndexPath

答案 2 :(得分:0)

如果您确定所有垂直约束都已设置并从上到下正确,请尝试明确设置tableView.rowHeight = UITableViewAutomaticDimension