【问题标题】:iOS tableview with dynamic-height cells but all cells are displayed at once具有动态高度单元格但所有单元格同时显示的 iOS 表格视图
【发布时间】:2015-06-12 19:14:50
【问题描述】:

我想实现以下目标:

  • 带有动态高度单元格的表格视图(我可以这样做,感谢this article
  • 但是表格视图的高度设置为所有单元格的动态高度一起,这意味着所有单元格同时显示在表格视图中

-> 基本上是一个具有动态高度的视图列表(使用自动布局和包装标签),如果可能的话,我不想计算像素高度

【问题讨论】:

  • 要实现动态高度,您需要使用 UITableViewAutomaticRowDimension 并在单元格内从上到下和从左到右正确设置约束。并使用委托方法给出估计的高度。
  • 您阅读了我的整篇文章吗?我设法做到了,我还需要同时显示所有单元格(意思是,表格视图的高度设置为所有动态单元格高度的总和)。实际上我想要一个带有动态高度项的堆栈视图。
  • 我读了你的帖子好友。对不起,我不明白。如果您可以分享您所说的任何图像,那么我可以帮助您...因为我无法获得您的最后一行“带有动态高度项的 stackview”,您想通过 tableview 来实现这一点。?
  • 您是否在表中添加了任何底部约束,那么您需要将其删除。并向表格添加高度约束,它应该等于 self.table.contentSize.height。然后调用 layoutIfneeded。我相信这会奏效。就像我做过类似的事情。
  • 您能提供工作代码示例吗?为'marker'标签设置了底部约束,并且在marker和tableview之间有一个垂直约束。问题是 tableview 的高度必须动态设置,我不知道何时、如何以及达到什么值(我猜)

标签: ios swift autolayout


【解决方案1】:

根据您的说法,听起来您希望所有单元格同时可见,这样表格就不会滚动。如果是这样,你真的需要使用UITableView吗?

听起来UIStackView 是您想要的,它会自动调整所有大小。这将有效地让您显示一个充满“单元格”的屏幕,所有大小都正确,无需滚动。

如果你想尝试堆栈视图的方法,你可以使用 Interface Builder 拖一个进去。然后,您可以直接在 Interface Builder 中向其中添加项目,或者,如果您一次又一次地复制相同的内容并希望在代码中执行此操作,则使用 addArrangedSubview() 添加它们,如下所示:

stackView.addArrangedSubview(yourView)

【讨论】:

  • 另外,UIStackView 仅适用于 iOS 9。
猜你喜欢
  • 2018-05-06
  • 1970-01-01
  • 2018-08-04
  • 1970-01-01
  • 2015-09-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-05-16
相关资源
最近更新 更多