2012-04-12 76 views
1

我有一個單元格的UITableView,其中一個單元格包含UITableView。選擇包含該表格的行將一個新視圖與項目列表一起推入屏幕。用戶選擇一個項目列表,然後按'返回'來彈出該視圖。父視圖查看所選項目的數量,並且單元格的高度應該調整以顯示所選的所有項目。在重新顯示視圖時未調整大小的另一個表的單元格中動態調整大小的表格

會發生什麼情況是當視圖重新顯示時,列出的項目會延伸到下面的單元格中。如果我將該單元格從屏幕上滾動下來,然後返回該單元格,那麼該單元格就是正確的高度,正確顯示所有項目。

我已經嘗試了幾種方法,比如將代碼放入主表的viewWillAppear中,如[self.view setNeedsDisplay]和[self.view setNeedsLayout],但它不起作用。

我似乎無法找到一種方法來使該單元格重繪爲正確的大小,而無需在顯示視圖後滾動表格。

是否還有其他一些方法在實際出現之前強制重繪?

回答

0

嘗試:

NSIndexPath *theIndexPath = [NSIndexPath indexPathForRow:cellRow inSection:cellSection]; 
NSArray *theIndexPaths = [NSArray arrayWithObject:theIndexPath]; 
[table reloadRowsAtIndexPaths:theIndexPaths withRowAnimation:NO]; 
什麼是你目前使用重繪細胞

?只是等待它重新繪製自己,當它離開屏幕並重新開始時?或者你正在使用類似[table reloadData];?

+0

在主表viewWillAppear我在調用reloadData點。其中經過並調用諸如heightForRowAtIndexPath之類的東西,在這裏我確定有多少選定的項目供我顯示,並返回表格的行調整高度。 – WolfpackEE 2012-04-12 19:35:57

+0

順便說一句,你在哪裏建議我把你的代碼建議? – WolfpackEE 2012-04-12 19:42:08

+0

如果你正在調用reloadData,那麼我會認爲它會重新加載該單元格。我只是在viewWillAppear和viewDidAppear中進行測試,它在兩個地方都適用於我。在調用這些函數之前,請確保您的身高數據是正確的。 – 2012-04-12 20:09:14

相關問題