我有一个固定的空间,我将拥有一个UITableView。我不希望UITableView滚动,所以我想计算适合不滚动的单元格数量。单元格大小各不相同,使用UITableViewAutomaticDimension来确定大小。最好的方法是什么?
答案 0 :(得分:1)
您可以使用此方法并将单元格高度保存在字典中,然后您可以在字典值上运行一个字符串并总结所有保留的值,并使用值执行所需的操作,让我们看一些示例代码,
首先定义字典以保存您的值
var automaticDimensionsHeightRows : [Int:CGFloat] = [:]
我定义了这个var automaticDimensionsHeightRows
变量,因为我有两种类型的单元格,其中一类具有固定的高度,另一类具有UITableViewAutomaticDimension
高度
然后使用此方法获取并保留值
func tableView(_ tableView: UITableView, willDisplay cell: UITableViewCell, forRowAt indexPath: IndexPath) {
if((self.tableView.delegate?.tableView!(self.tableView, heightForRowAt: indexPath))! == UITableViewAutomaticDimension)
{
self.automaticDimensionsHeightRows[indexPath.row] = cell.frame.size.height
}
}
最后,您可以在字典值上运行一个字符串并检查您的值或做您需要做的任何事情
希望这有帮助
答案 1 :(得分:0)
如果您不希望tableView滚动,只需获取tableView的可见单元格 让arrayCell = tableView.indexPathsForVisibleItems() 要么 让arrayCells = tableView.visibleCells()
一旦你看到了可见的细胞,就会发现细胞的数量是可见的