具有自动调整大小单元格的自调整TableView的简单解决方案

几天前,我读了一篇简单但精彩的文章,名为Swift 4食谱: Dushyant Bansal的自调整表格视图 (底部的链接)。 他在那里所做的工作非常简单易懂。 他覆盖了reloadData()函数和UITableView的intrinsicContentSize变量。 该解决方案对许多应用程序都很方便,我在其中一个项目中使用了它。 我在这里利用他的一些资源来证明他的所作所为。

这是他使用的Custom类。

问题是,它仅适用于相同大小的单元 。 如果要将此SelfSizedTableView类应用于“ 自动调整表”视图单元格大小 ,则需要扭曲intrinsicContentSize变量。 修改后的代码将如下所示:

 覆盖var internalContentSize:CGSize { 
setNeedsLayout()
layoutIfNeeded()
设高度=最小值(contentSize.height,maxHeight)
返回CGSize(width:contentSize.width,height)
}

只需在计算高度之前添加setNeedsLayout()layoutIfNeeded() 。 你们都准备好了。 😆

我想提

如果您使用预设数据(不是来自API)用于tableView,请在viewDidAppear()方法中使用tableView.reloadData()获得效果。 如果要从API提取数据,则已经在API响应块中使用了tableView.reloadData() ,不是吗?