我正在设计一个具有滚动视图的页面,在其上方是一个表格视图(禁用滚动)。为此,我在这个问题中引用了答案 - Make UITableView not scrollable and adjust height to accommodate all cells,但没有成功。
视图的层次结构以及提供的约束 -
- 主要观点
- 滚动视图
固定到主视图(0,0,0,0)的所有边,约束到边距
- 内容视图
固定为滚动视图(0,0,0,0),宽度等于主视图,高度等于主视图(优先级 - 250)
- 内容视图中的表格视图
滚动禁用,从所有边都有50个点空格,高度(> =),底部间距50(关系> =)。我放置大于等于动态增加高度。
现在,当我填充表格视图时,我将代码用作
func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell
{
let cell = tableview.dequeueReusableCellWithIdentifier("cellreuse", forIndexPath: indexPath)
cell.textLabel?.text = name[indexPath.row]
tableview.frame.size = tableview.contentSize
return cell
}
因此,当我运行我的代码时,它会增加tableview框架,但不会拉伸内容大小,它只会变得怪异,因为我的滚动视图不会滚动到表视图的末尾,我的表视图也不会遵循自动布局约束。
答案 0 :(得分:36)
我需要这样做 -
删除该行 - tableView.frame.size = tableView.contentSize
为表格视图添加高度约束。
将优先级设为高
创建高度限制的出口(Ctrl + Drag)。
无论您何时需要重新加载表格数据,请将高度限制设置为tableview的内容高度。
tableHeightConstraint.constant = tableview.contentSize.height