2017-08-09 70 views
1

我有一个UITableView,有几个高度不同的单元格。每行都根据其包含的内容进行动态调整。发送heightForRow:在计算单元格内的atIndexPath高度值

我有一个自定义UITableViewCellUICollectionView它应根据它有多少单元(所有单元格应该是可见的,没有滚动内部)调整大小。

我还有一个UITableViewCell与另一个UITableView,应根据它有多少个单元格(所有单元格应该是可见的,无需滚动内容)调整大小。

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

我试图将其设置为UITableViewAutomaticDimension,并将cell.contentView.frame.size.height设置为contentSize(当在contentSize上添加一个观察者时),但随后这些单元位于另一个之上(collectionView位于tableView而不是上面)。

tableView代码是一个常规的tableView代码。

的的CollectionView代码:

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

什么是调整的tableView和的CollectionView的大小最好方法是什么?

谢谢!

+0

什么是你的tableview细胞包含内容? – Pankaj

+0

@Pankaj哪一个?主tableView包含5个不同的自定义单元格(自定义UIViews,collectionView和tableVIew)。里面的tableView包含2种不同类型的自定义单元 –

+0

正如你所说你不想滚动collectionview或tableView,那么你需要手动计算你的简历和电视中每个单元格的大小,你需要通过这些高度为你的主细胞。 – Pankaj

回答

0

你可以只是这段代码要求的UITableView调整其细胞高度再次:

self.tableView.beginUpdates() 
self.tableView.endUpdates() 
+0

但是我应该什么时候打电话?我如何知道在tableViewController中,tableVIew和collectionView完成加载? –

+0

您是否可以在实例化父级表视图时计算嵌套的集合视图和表视图的大小? – kirander

+0

collectionView单元大小由约束条件设置 –