This video demonstrates the issue I'm visually having.tableView.reloadRows閃爍如果另一個表更新
每個之後調用太快所以很多時候,我有這樣的塊稱爲:
self.tableView.beginUpdates()
self.tableView.insertRows(at: [indexPath], with: rowAnimation)
self.tableView.endUpdates()
self.tableView.scrollToRow(at: indexPath, at: scrollPosition, animated: true)
self.tableView.reloadRows(at: [indexPath], with: .automatic)
讓我們不要詢問太多(的insertRows呼叫和立即重載行程)。這是解決SlackTextViewController中的錯誤的建議解決方案。 The bug in question for those curious.
現在,在其他地方,我呼籲:
self.tableView.reloadRows(at: [indexPath], with: .automatic)
當我們在處理這兩種情況下相同的indexPath,你會遇到一個閃爍如果這些兩個塊太快運行。
我會發現通過使用dispatchQueue(:asyncAfter)
方法人工延遲self.tableView.reloadRows(at: [indexPath], with: .automatic)
的第二個電話很棘手。
我怎麼能處理這個?
更新:現在,我已經通過使用dispatchQueue(:asyncAfter)
方法來解決此問題,以避免競爭條件。我想盡量避免這種情況,所以當我尋找其他答案時,我會保持這種狀態。
是否有任何原因同時重新加載和插入?應該只是調用其中的一個 – Tj3n
原始塊是由於我鏈接的問題。另一個調用發生在完成塊中,完成塊被調用的速度取決於互聯網連接。 – David