【问题标题】:iOS TableView Constraints doesn’t work [duplicate]iOS TableView 约束不起作用[重复]
【发布时间】:2017-10-30 10:02:50
【问题描述】:

嗨。我已经尝试在 Goodle 上找到有关它的一些信息,但没有任何帮助。
我是快速的初学者。请帮帮我。

我想在TableViewController 中自动布局这个TableViewCell

现在它在 IB、Preview 和 Simulator 中看起来不错,但肯定是在这个屏幕尺寸上。

然后,正如我在 StackOverflow 的一个答案中看到的那样,我向 Cell 的每个子视图添加了 5 个约束,如下所示:

现在,当我运行项目时看起来崩溃了:

为什么

【问题讨论】:

  • 您是否也以编程方式设置单元格高度?
  • @ShamasS 不,只是在 IB 中
  • 不是在子视图上添加约束,而是将 UIView 添加为容器视图并在其中添加子视图并对其应用建议的约束。最后在 UIView 上添加约束
  • 你在使用stackview吗?
  • @PGDev 不,我现在不喜欢这种方法,我只是在学习

标签: ios swift storyboard


【解决方案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 根据您的约束条件自动确定估计单元格的高度。

【讨论】:

    猜你喜欢
    • 2021-09-21
    • 2018-05-27
    • 2015-08-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-07-07
    相关资源
    最近更新 更多