更新:看起來tableView.estimatedRowHeight
設置與問題有某種關係,因爲問題的變化隨着數字更改而變化,並將其設置爲9999使得它「消失」,但似乎超級哈克。 9999也打破了我想要在展示/隱藏中做的動畫。 9999還打破了滾動條的功能。有關其他詳細信息和完整上下文,請參閱下面的討論線iOS UITableViewController單元格在第一次更改後調整單元格高度後跳出位置
我有一個視圖控制器,它包含兩個Container Views
。每個容器視圖都包含一個UITableView
控制器。它們垂直取向,每個佔據整個高度。
右側的容器的寬度爲100,並在拖尾約束設置爲-100時啓動屏幕,允許其他容器在初始時填充整個屏幕。
左邊的表格使用UITableViewAutomaticDimension
自動調整單元高度,因爲當顯示隱藏視圖時,兩行上的某些文本可能需要換行到下一行。
當我將約束更改爲0並顯示視圖時,如果我不在列表的頂部,而不是展開屏幕上顯示的內容,它似乎會擴展所有內容,從而推動所發生的事情屏幕下降,進一步比它應該去。
雖然有些奇怪,但隨後的展開/摺疊如預期的那樣工作,只調整可見的內容。
我附上了一個視頻,顯示了這個問題,我只是試圖連接東西並獲得尺寸,現在正確的視圖內容將有所不同。
以下是發生了什麼事在視頻
- 我從列表的頂部展開/摺疊和它的作品如預期
- 我滾動到列表中,並擴大規模,我的內容變推進比應該進一步。
- 然後我摺疊並再次展開它,這次它保持原位,因爲在可見屏幕上沒有大小改變。
不管我走多遠,同樣的行爲發生,隨着我進一步下去,情況會變得更糟。
我調整上的按鈕按這樣的約束了。
if self.timeContainerConstraint.constant == 0 {
self.timeContainerConstraint.constant = -90.0
} else {
self.timeContainerConstraint.constant = 0.0
}
有誰知道爲什麼,當我向下滾動列表並展開第一次的內容是跳躍,但不能過早隨後嘗試?
你有沒有實施'estimatedHeightForRowAt:'? – Paulw11
不,但我已經設置了估計值RowHeight tableView.estimatedRowHeight = 140 – Ben987654
您是否在更改約束後在容器上調用'layoutIfNeeded'? – Paulw11