我使用Autolayout在表格视图中显示了多行标签。一切都很好,但是单元格高度比标签尺寸大得多。例如,如果我的标签高度为100,则单元格高度应为100,因为我将heightForRowAtIndexPath
作为标签高度返回,但其高度返回为150等
然后我尝试删除该标签的setPreferredMaxLayoutWidth
,在这种情况下,该标签的最后一行没有显示(截断)。
答案 0 :(得分:2)
使用
mytableView.rowHeight = UITableViewAutomaticDimension
mytableView.estimatedRowHeight = 100.0
而不是从heightForRowAtIndexPath返回高度。 如果标签高度是动态的,则设置所有侧面自动布局约束。将label&line; Lines属性设置为零。 如果你想要标签和单元格高度相同,那么将前导,尾随,顶部,底部约束设置为零而没有边距。
答案 1 :(得分:2)
最后通过在cellForRowAtIndex
cell.bounds = CGRectMake(0, 0, CGRectGetWidth(tableView.bounds), 99999);
cell.contentView.bounds = cell.bounds;
[cell layoutIfNeeded];
[cell.myLabel setPreferredMaxLayoutWidth:CGRectGetWidth(cell.myLabel.frame)];
点击here了解更多详情。