2010-06-04 58 views

回答

17

整個表視圖重新加載,它調用的cellForRowAtIndexPath讓您的所有行和部分細胞......它這樣做也要求實現代碼如下數據源等等等等

的數據源的tableView和numberOfRows方法numberOfSections方法
+0

它應該調用cellForRowAtIndexPath。有時它根本沒有。 – 2012-06-06 08:49:22

+1

@JimThio我有這個確切的問題,你知道一個解決方案,爲什麼我重新加載數據後,我的cellForRowAtIndexPath沒有被調用? – vinylDeveloper 2013-08-26 17:13:10

+0

您是否發現了爲什麼cellForRowAtIndexPath不會通過向tableView發送reloadData消息來調用的答案? – Beanno1116 2015-08-09 01:43:37

1

另外,爲了將來的參考,這些信息可以在文檔here中找到。從Apple文檔複製/粘貼:

調用此方法重新加載用於構造表的所有數據,包括單元格,節標題和頁腳,索引數組等等。爲了提高效率,表格視圖僅重新顯示那些可見的行。如果表格由於重新加載而縮小,它會調整偏移量。表視圖的委託或數據源在希望表視圖完全重新加載其數據時調用此方法。在插入或刪除行的方法中不應調用它,尤其是在調用beginUpdates和endUpdates所實現的動畫塊中。

0

對於接受答案非常好。但我想提及所有可見的單元格將被重新創建。通常這不是什麼大不了的事。但是,如果你的tableViewCell存儲屬性包含一些數據可能會丟失。

例如,點擊tableViewCell上的按鈕,從互聯網上請求一些數據,並將檢索到的數據保存到存儲的屬性中。如果你reloadData,那麼檢索到的數據將會丟失。當然,這實際上並不適合從tableViewCell發出請求。但只是想解釋這種情況。

相關問題