发送heightForRow:在单元格内计算后的atIndexPath高度值

时间:2017-08-09 08:05:04

标签: ios iphone swift uitableview cocoa-touch

我有UITableView,只有很少的细胞有不同的高度。每行都根据其中包含的内容进行动态调整。

我有一个自定义UITableViewCell,其中包含UICollectionView,应该根据它有多少个单元格来调整大小(所有单元格都应该可见,而不需要在内部滚动)。

我还有一个UITableViewCell和另一个UITableView根据它有多少个单元格来调整大小(所有单元格应该是可见的,不需要在内部滚动)。

问题是我没有调用collectionView和tableView的contentSize,而heightForRow:atIndexPath被调用,所以我无法将值设置为正确。

我尝试将其设置为UITableViewAutomaticDimension,并在设置时将cell.contentView.frame.size.height设置为contentSize(在" contentSize&#34上添加观察者;)然后单元格在彼此之上(collectionView在tableView的顶部而不是在它之上)。

tableView代码是常规的tableView代码。

collectionView代码是:

self.collectionView.collectionViewLayout = UICollectionViewLeftAlignedLayout()
let collectionViewFlowLayout = collectionView.collectionViewLayout as! UICollectionViewFlowLayout
collectionViewFlowLayout.estimatedItemSize = CGSize(width: 34, height: 50)

调整tableView和collectionView的大小的最佳方法是什么?

谢谢!

1 个答案:

答案 0 :(得分:0)

您可以通过以下代码让UITableView再次调整其单元格高度:

self.tableView.beginUpdates()
self.tableView.endUpdates()