[英]Is there any way to listen for cells that are no longer displayed in a UITableView?
我想知道 UITableView 的哪些單元格不再可見,因此我可以從存儲它們的 DataModel class 中刪除它們的數據。
這是我嘗試過但不起作用的方法。 我猜是因為 indexPathsForVisibleRows 不能用作發布者。
func addSubscriberToVisibleCells(){
var publisher = self.table_view.indexPathsForVisibleRows.publisher.receive(on: DispatchQueue.main)
print("Publisher added")
publisher.sink { pathsVisible in
guard pathsVisible != nil else{return}
self.lastIndexPathRows.forEach { lastIndex,value in
if pathsVisible.firstIndex(of: lastIndex) == nil {
self.postData.deleteDataForIndex(lastIndex)
self.lastIndexPathRows.removeValue(forKey: lastIndex)
}
}
pathsVisible.map { visibleIndexPath in
self.lastIndexPathRows[visibleIndexPath] = 1
}
}
}
self.lastIndexPathRows 是一個字典,用於跟蹤最新的可見單元格。
在你的表視圖委托中實現tableView(_:didEndDisplaying:forRowAt:)
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.