我的目标是使用UITableViewAutomaticDimension
在我的TableView中显示具有动态高度的单元格。目前,启用UITableViewAutomaticDimension
后,我的tableview中会显示 no cells 。
这是我目前的配置:
FeedCell
FeedCell
有一个名为ForegroundContainerView
的视图,已将其配置为固定所有边的位置。 ContentView
,但无法: 最后,我在viewDidLoad
中有以下内容:
self.tableView.rowHeight = UITableViewAutomaticDimension
self.tableView.estimatedRowHeight = 112.0
(我还删除了默认函数func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat
如果我不使用UITableViewAutomaticDimension
,则单元格会正常显示,确认数据已正确送入tableview。
我做错了什么?任何指针都非常赞赏。
答案 0 :(得分:2)
我认为你的约束是模棱两可的。您要求UIKit自动调整您的单元格大小(UITableViewAutomaticDimension
),但是"前景容器视图"没有定义的高度......它只受到单元本身的限制(它也没有定义的高度!)。
所以你可能在控制台中有一些模棱两可的约束警告,因为系统不知道该做什么,或者你的"前景容器视图"默认值为0.0表示您的表格单元格高度约为10.5(0.0 +您的约束间距)。你没有包含实际在模拟器中显示的内容的截图,所以我只是在猜测。
提供您的"前景容器视图"一些内容或明确地将它的高度限制在你能够看到的东西(例如200px)。另外,我建议你给它一个背景色,这样你就可以在屏幕上看到它的高度。
要使用实际单元格内容进行自动单元格大小调整,您应该限制“前景容器视图”中的视图(标签,图像,其他任何内容)。 (或者如果你愿意,可以直接在单元格的内容视图中)。
预期最高的子视图(标签,图像等)与容器之间必须存在顶部间距和底部间距约束。