iOS TableView 约束不起作用[重复]
Posted
技术标签:
【中文标题】iOS TableView 约束不起作用[重复]【英文标题】:iOS TableView Constraints doesn’t work [duplicate] 【发布时间】:2017-10-30 10:02:50 【问题描述】:嗨。我已经尝试在 Goodle 上找到有关它的一些信息,但没有任何帮助。 我是快速的初学者。请帮帮我。
我想在TableViewController
中自动布局这个TableViewCell
。
现在它在 IB、Preview 和 Simulator 中看起来不错,但肯定是在这个屏幕尺寸上。
然后,正如我在 *** 的一个答案中看到的那样,我向 Cell 的每个子视图添加了 5 个约束,如下所示:
现在,当我运行项目时看起来崩溃了:
为什么?
【问题讨论】:
您是否也以编程方式设置单元格高度? @ShamasS 不,只是在 IB 中 不是在子视图上添加约束,而是将 UIView 添加为容器视图并在其中添加子视图并对其应用建议的约束。最后在 UIView 上添加约束 你在使用stackview吗? @PGDev 不,我现在不喜欢这种方法,我只是在学习 【参考方案1】:您可以将UIStackView
用于此类嵌套视图。它只是减少了开发人员需要应用的约束数量。
示例:
1. UITableViewDataSource
func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int
return 2
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell
return tableView.dequeueReusableCell(withIdentifier: "cell", for: indexPath)
2。故事板:查看层次结构和约束:
3.输出:
我没有使用过 height/estimatedHeight
UITableViewDelegate
方法。它将由单元格(if the constraints are right and the cell is able to calculate its own height)
自动计算。
【讨论】:
有趣的解决方案!谢谢! 当然..如果有效,请接受答案..?【参考方案2】:如果您将这 5 个约束添加到单元格的 每个 子视图,那么它是不正确的。此外, contentView 也是单元格的子视图,您正在修改其宽度 - 因此显示宽度减小。另外,每个子视图(不应该包括 contentView)应该有不同的约束。
您还可以让 Xcode 使用 UITableViewAutomaticDimension 根据您的约束条件自动确定估计单元格的高度。
【讨论】:
以上是关于iOS TableView 约束不起作用[重复]的主要内容,如果未能解决你的问题,请参考以下文章
iOS:tableView.reloadData() 在 swift3 中不起作用