0
蘋果表示有關的UITableView -beginUpdates -endUpdates塊:爲什麼行數等屬性可能無效,如果我沒有調用-beginUpdates?
如果不進行此塊內的插入,刪除,並選擇電話,表屬性,如行計數可能變得無效。
我想知道-beginUpdates究竟做了什麼。爲什麼表格屬性(例如行計數)可能會變得無效,因爲我沒有在此區域中放入插入/刪除代碼?
蘋果表示有關的UITableView -beginUpdates -endUpdates塊:爲什麼行數等屬性可能無效,如果我沒有調用-beginUpdates?
如果不進行此塊內的插入,刪除,並選擇電話,表屬性,如行計數可能變得無效。
我想知道-beginUpdates究竟做了什麼。爲什麼表格屬性(例如行計數)可能會變得無效,因爲我沒有在此區域中放入插入/刪除代碼?
表中的行以兩種方式更改:(1)底層數據更改,表必須重新加載以顯示新數據。 (2)用戶直接通過插入,刪除或拖動來編輯表格。塊處理(2)。
beginUpdates
到endUpdates
塊告訴表,它正在被直接編輯,並且它不應該依賴其數據源返回的值。如果沒有該塊,表格會正常調用numberOfRowsInSection
以查明它應該有多少行。如果用戶剛剛插入或刪除了一行,它將接收到不正確的值,因爲數據模型可能尚未更新。直到表格顯示更改並委託寫入數據之後,數據源纔會返回正確的值。
您可以將該塊視爲一種臨時將表與數據源分離的方式。