具有自动调整大小单元格的自调整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()
,不是吗?