2017-08-20 140 views
0

我的目標是使用UITableViewAutomaticDimension在我的TableView中顯示具有動態高度的單元格。目前,在啓用UITableViewAutomaticDimension之後,沒有單元格顯示在我的桌面視圖中。使用自動單元格高度配置TableView不會顯示單元格

這裏是我當前的配置:

  1. 我使用的是自定義單元格類,稱爲FeedCell
  2. FeedCell有一個名爲ForegroundContainerView觀點,已經被配置爲這樣的地方各方都寄託。 enter image description here
  3. 我也試圖針細胞的ContentView,但未能:enter image description here
  4. 最後,我有在viewDidLoad如下:

    self.tableView.rowHeight = UITableViewAutomaticDimension self.tableView.estimatedRowHeight = 112.0

(我也刪除了默認功能func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat

如果我不使用UITableViewAutomaticDimension,單元顯示正常,確認數據正確輸入到tableview中。

我在做什麼錯?任何指針非常讚賞。

+1

描述這個問題和你嘗試過的很棒的工作。您所描述的內容聽起來像是應該起作用,您可能需要考慮在Foreground Container View中添加一些內容,該內容具有單元可用於確定其高度的固有高度。 – Norman

回答

2

我認爲你的約束是不明確的。您要求UIKit自動調整單元格大小(UITableViewAutomaticDimension),但「前景容器視圖」沒有定義的高度......它僅限於單元格本身(它也沒有定義的高度!)。

因此,您可能在控制檯中存在某種模棱兩可的約束警告,因爲系統不知道該怎麼做,或者可能您的「Foreground Container View」默認爲0.0,意味着您的表格單元格高度爲約10.5(0.0 +你的約束間距)。你沒有包含模擬器中實際顯示的屏幕截圖,所以我只是猜測。

爲您的「前景容器視圖」指定一些內容或明確限制它的高度,以便您能夠看到(例如200px)。另外我建議你給它一個背景色,以便你可以在屏幕上看到它的高度。


,達到自動電池與電池實際內容大小,您應該限制視圖(標籤,圖像,任何其他)的「前景容器視圖」(或者,如果你願意,直接在單元格的內容視圖內)內。

預期的最高子視圖(標籤,圖像等)和容器之間必須有頂部間距和底部間距約束。

+0

這是一個很好的建議。我無法將單元格'ContainerView'約束到一個高度,但是如果我將'FregroundContainerView'約束到特定高度,則會報告結果。 – daspianist

+0

你死了。當給細胞一個背景顏色時,顯然所有細胞的高度僅爲10.5。當ForegroundContainerView被限制在200的高度時,所有內容都顯示出來。主要問題是:我如何動態地約束'ForegroundContainerView',以便根據單元格的內容調整高度? – daspianist

+0

@daspianist您可以將Foreground容器視圖限制爲它的內容(它是子視圖)。不過,它看起來並不像你現在有前景容器視圖的任何子視圖。我用更多的信息更新了我的答案。 –

相關問題