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 约束不起作用

iOS:tableView.reloadData() 在 swift3 中不起作用

iOS 8 中的 UITableViewCell 约束在 iOS7 中不起作用

为啥这个按钮约束设计不起作用?

UIlabel尾随空格不起作用