如何将LPLinkView的元数据设置为nil

How to set the metadata of LPLinkView to nil

我在表格视图单元格中使用 LPLinkView。滚动时,重用单元最初显示回收单元的 LinkProvider,然后在网络调用完成后立即更改。我想准备电池以供重复使用。有没有办法将 link 提供者元数据设置为零? (类似于 imagview.image = 无)

我会在 prepareForReuse 函数中完成。

你可以这样做 -

class MyTableViewCell: UITableViewCell {
    let linkView = LPLinkView(frame: .zero)
    var metadataProvider = LPMetadataProvider()
    
    override func prepareForReuse() {
        super.prepareForReuse()
        
        // Cancel in-flight metadata fetch request
        metadataProvider.cancel()

        // Assign an empty metadata object, all properties inside this are nil
        linkView.metadata = LPLinkMetadata()
    }
    
    func populateData(json: [String: Any]) {
        if let link = json["link"] as? String, let url = URL(string: link) {
            metadataProvider = LPMetadataProvider()
            metadataProvider.startFetchingMetadata(for: url, completionHandler: { [weak self] (metadata, error) in
                if let metadata = metadata, error == nil {
                    self?.linkView.metadata = metadata
                }
            })
        }
    }
    
}