2017-08-09 37 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單元大小由約束條件設置 –