簡體   English   中英

有什么方法可以監聽 UITableView 中不再顯示的單元格嗎?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM