scrollView中有一个UITableView,由于以下功能,每次添加新值时,UITableView都会自动增长
class IntrinsicPostTableView: UITableView {
override var contentSize:CGSize {
didSet {
self.invalidateIntrinsicContentSize()
}
}
override var intrinsicContentSize: CGSize {
self.layoutIfNeeded()
return CGSize(width: UIView.noIntrinsicMetric, height: contentSize.height)
}
}
override func viewWillLayoutSubviews() {
super.updateViewConstraints()
self.heightConstraint?.constant = self.tableView.intrinsicContentSize.height
}
但是这会导致cellForRowAt触发两次,如果我的列表有3个项目,则indexPath.row第一次返回0 1 2,第二次返回1 2。 / p>
答案 0 :(得分:0)
最好设计一个代码,该代码假定UITableView的numberOfSections,numberOfRows或cellForIndexPath将在单元格的无序且非穷举的列表中调用。
在这种情况下,您还遇到了单元重用的问题,并且图像已根据单元模型进行了更新。在重用单元格的情况下,必须在UITableViewCell的prepareForReuse方法中将图像,资产或其他元素设置为初始值