描述:在將新行插入到tableView中時,是否必須調用begin/endUpdates方法?
,當應用程序被啓動,創建與3行的表圖。如果點擊,導航欄中的添加按鈕將在表格視圖中添加新行。添加行操作背後的核心流程是方法
func insertRows(at:, with:)
。Apple documents和許多堆棧上溢的答案(例如,this one)表明,把任何方法調用插入,刪除,或選擇行和功能
beginUpdates()
和endUpates()
之間的表視圖的部分。我刪除了
beginUpdates()
和endUpdates()
;事實證明,沒有他們的應用程序工作得很好。問:
什麼是添加
beginUpdates()
&endUpdates()
的好處是什麼?爲什麼我問這個問題:
功能
func insertRows(at:, with:)
被調用委託函數tableView(_:, cellForRowAt:) -> UITableViewCell
通過dequeueReusableCell(withIdentifier:, for:) -> UITableViewCell
創建一個新的細胞,這是同樣的程序在tableView
創建3個默認行,當應用程序啓動,但是,在那裏沒有這樣的一個beginUpdates
/endUpdates
。那麼,爲什麼我需要在以後添加新行時添加此過程,而如果沒有它們,應用程序似乎還在工作?
0
A
回答
2
要
動畫分批插入,缺失,和行和段的重新加載,調用由連續調用beginUpdates
和endUpdates
定義動畫塊中的相應方法。如果您不在此塊中調用插入,刪除和重新加載方法,則行和部分索引可能無效。調用beginUpdates
和endUpdates
可以嵌套;所有索引都被視爲只有外部更新塊。
在塊結束時 - 也就是endUpdates
返回後 - 表視圖查詢其數據源並像平常一樣查詢行和段數據。因此,應該更新支持表視圖的集合對象以反映新的或刪除的行或部分。
相關問題
- 1. 是否必須存在respondsToSelector方法?
- 2. 我是否必須在FolderBrowserDialog上調用Dispose方法?
- 3. 無法將值插入到tableview中 - JavaFx
- 4. 是否必須在Cakephp中使用isAuthorized()方法?
- 5. 是否必須在setter方法中使用參數
- 6. 將UITextField插入到TableView中
- 7. 僅在數據庫中插入時,是否必須使用斷開連接的方法?
- 8. 在iOS的tableView中插入新行
- 9. 在方法調用後在tableView中重新載入數據
- 10. 從WCF調用時,NuSoap是否必須以某種方式進行配置?
- 11. Python:TypeError:unbound方法,必須用(class)instance調用
- 12. 如何從不同的類中將新行插入到tableview中?
- 13. 在插入記錄之前,類是否必須存在?
- 14. java.io.IOException:WebSocket方法必須是GET
- 15. Swift TableView插入新行
- 16. 之前必須調用「WebSecurity.InitializeDatabaseConnection」方法嗎?
- 17. $ scope是否必須始終用於Angular中的方法定義
- 18. 當插入新行時,TableView會滾動到中間
- 19. 您是否必須在.h文件中聲明overriden @property方法?
- 20. 我是否必須在Pundit策略中定義所有方法?
- 21. android studio「插入應用程序」方法gettext必須從UI線程調用
- 22. 分配時是否必須使用initWithString?
- 23. 這是否意味着必須在每個UI控件上調用Invoke()方法?
- 24. 在調用qRegisterMetaType之前,我是否必須調用Q_DECLARE_METATYPE?
- 25. 使用jQuery進行AJAX調用是否必須返回數據?
- 26. 每次使用onMessage.addListener responseCallback時,是否必須調用return true?
- 27. 是否必須使用SSL?
- 28. 爲什麼這種方法必須是回調方法
- 29. 是否必須在Activity中處理Android 6.0運行時權限檢查回調?
- 30. 您是否必須在回發中調用RegisterClientScriptInclude?
**我刪除了beginUpdates()和endUpdates()原來的應用程序工作得很好,沒有他們** - >不重裝數據怎麼能工作正常,你要麼使用beginUpdates()&endUpdates或重新加載數據來更新/動畫你的tableview –
[相關](https://stackoverflow.com/q/23260279/335858) – dasblinkenlight
@AmritTiwari你能停止COPY和粘貼從其他人的答案,如這一個:https://stackoverflow.com/a/23260386/3004698 – SLN