我有一个故事板,里面有几种不同类型的原型单元,UILabels包含动态数据。在我的故事板中,单元格看起来像这样:
UILabel的Lines属性设置为零以允许多行文本。它固定在内容视图的顶部,左侧,右侧和底部的最近邻居(蓝线)。蓝线固定在内容视图的左侧和右侧,顶部是UILabel,底部是UITextView。UITextView固定在底部,左侧和右侧的内容视图中,并固定到蓝线上在顶部。
当我运行应用程序时,我得到以下内容:
所以UILabel正在强制其他所有内容,但是单元格的高度并没有像我想要的那样改变,因此文本视图被单元格的固定高度剪掉了。我的假设是,如果所有内容都固定在顶部和底部,那么内容视图将被强制扩展。我在这里错过了什么?谢谢!
答案 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
。