2012-02-10 59 views
0

變化的UITableViewCell高度我有一個UITableViewCellsUITableView填充在cellForRowAtIndexPathUILabels等 我想改變的UITableViewCell的高度,之後我加入了UILabels到細胞。 我該怎麼做? 我讀了很多關於在heightForRowAtIndexPath方法中使用它的方法,但是這個方法在cellForRowAtIndexPath之前調用,所以調用heightForRowAtIndexPath時新的自定義高度是未知的。中的cellForRowAtIndexPath

那麼如何在cellForRowAtIndexPath方法中設置我的UITableViewCell的高度?

在此先感謝,浪費了很多時間在這一個。

+0

你是如何給你的標籤框架? – 2012-02-10 11:06:20

+0

只需重新載入表格數據 – 2012-02-10 11:09:08

+0

耶在創建之前,行的高度必須已知。一種方法是在計算有多少標籤將在特定行中,然後加載表格視圖 – 2012-02-10 11:09:34

回答

2

我可以更改UITableViewCell的contentView,這工作正常:)如果我改變我的cellForRowAtIndexPath函數中的高度,並立即調用[tableView beginUpdates],它會改變。

+0

您能解釋更多關於如何解決問題的方法嗎?我遇到同樣的問題 – 2014-05-30 23:47:18

+0

對我不起作用 – 2014-09-11 09:47:57

+0

更改contentview的高度調用heightForCell再次返回單元格高度的存儲值(所以是的,它可以工作,並且它已經停止代碼重複的瘋狂應用程序)謝謝 – 2015-03-28 07:33:57

-1

如何在cellForRowAtIndexPath中強制額外調用heightForRowAtIndexPath如果單元格的高度不是您想要的高度?

你只需要避免無限循環:)

+3

這不起作用:'tableView:heightForRowAtIndexPath:'由'cellForRowAtIndexPath:'之前的UITableView調用來設置行高。調用'tableView:heightForRowAtIndexPath:'只是計算單元格高度並返回它 - 它對已經設置的tableView單元格沒有任何影響。 – yuji 2012-02-10 11:11:06

+0

那麼......如果你將某一行的高度設置爲其他行的高度,那麼將在單元稍後檢索到單元時的高度... 所以...如果將某個行的高度改變爲cellForRowAtIndexPath中的某一行,然後,下一次調用heightForRowAtIndexPath時,它將被更改... – 2012-02-10 15:34:20

7

你不能改變高度的cellForRowAtIndexPath。在顯示整個tableView之前,tableView必須知道高度。這就是爲什麼tableView:heightForRowAtIndexPath:爲你的tableView中的每個單元格調用。
例如,需要計算容納單元格的scrollView的大小。

但是由於單元格的創建遵循由您創建的特定算法,所以在調用tableView:cellForRowAtIndexPath:之前,您應該能夠計算出每個單元格的高度。

使用的是確定的cellForRowAtIndexPath細胞的高度的代碼相同的部分:並付諸heightForRowAtIndexPath:
優化是heightForRowAtIndexPath重要的,因爲它要求每一個細胞。所以確保你只做最小的工作量來計算高度。

相關問題