使用自动单元格高度配置TableView会导致不显示单元格

时间:2017-08-20 22:21:06

标签: ios swift uitableview

我的目标是使用UITableViewAutomaticDimension在我的TableView中显示具有动态高度的单元格。目前,启用UITableViewAutomaticDimension后,我的tableview中会显示 no cells

这是我目前的配置:

  1. 我正在使用名为FeedCell
  2. 的自定义单元格类
  3. FeedCell有一个名为ForegroundContainerView的视图,已将其配置为固定所有边的位置。 enter image description here
  4. 我还试图固定单元格的ContentView,但无法:enter image description here
  5. 最后,我在viewDidLoad中有以下内容:

    self.tableView.rowHeight = UITableViewAutomaticDimension self.tableView.estimatedRowHeight = 112.0

  6. (我还删除了默认函数func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat

    如果我不使用UITableViewAutomaticDimension,则单元格会正常显示,确认数据已正确送入tableview。

    我做错了什么?任何指针都非常赞赏。

1 个答案:

答案 0 :(得分:2)

我认为你的约束是模棱两可的。您要求UIKit自动调整您的单元格大小(UITableViewAutomaticDimension),但是"前景容器视图"没有定义的高度......它只受到单元本身的限制(它也没有定义的高度!)。

所以你可能在控制台中有一些模棱两可的约束警告,因为系统不知道该做什么,或者你的"前景容器视图"默认值为0.0表示您的表格单元格高度约为10.5(0.0 +您的约束间距)。你没有包含实际在模拟器中显示的内容的截图,所以我只是在猜测。

提供您的"前景容器视图"一些内容或明确地将它的高度限制在你能够看到的东西(例如200px)。另外,我建议你给它一个背景色,这样你就可以在屏幕上看到它的高度。

要使用实际单元格内容进行自动单元格大小调整,您应该限制“前景容器视图”中的视图(标签,图像,其他任何内容)。 (或者如果你愿意,可以直接在单元格的内容视图中)。

预期最高的子视图(标签,图像等)与容器之间必须存在顶部间距和底部间距约束。