TableView说明
tableView.rowHeight = UITableViewAutomaticDimension
tableView.estimatedRowHeight = 60.0
细胞描述
我在ContainerView和1 ImageView中有一个带有2个标签(标题,描述)的单元格,如下所示。细胞高度将根据描述标签的内容而有所不同
Contraints of all views
我应该处理两种情况
问题
如果我为第一种情况设置约束,那么第二种情况不起作用,反之亦然(我知道通过删除ContrainerView.Top,Bottom并使其垂直居中至SuperView案例2结果可以实现)
有没有办法通过使用相同的IB约束和UITableViewAutomaticDimension来实现两种情况下的预期结果?
答案 0 :(得分:0)
使用这些代表,
- (CGFloat)tableView:(UITableView *)tableView estimatedHeightForRowAtIndexPath:(NSIndexPath *)indexPath {
return 100; // height of default cell
}
- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath
{
return UITableViewAutomaticDimension;
}
修改
试试这个。
您的视图层次结构应该是这样的
ImageView约束
添加视图并将两个标签放入其中。
标签容器约束
标签标题约束
标签说明约束
修改输出
答案 1 :(得分:0)
首先确保您使用的是自行调整大小的单元格: https://developer.apple.com/library/content/documentation/UserExperience/Conceptual/AutolayoutPG/WorkingwithSelf-SizingTableViewCells.html
将图像视图和容器视图的顶部和底部约束设置为单元格边缘,并使它们成为>=
。
或者,您可以尝试水平堆栈视图并对单元格的每个边缘进行严格(最高优先级)约束。