我在 tableview 单元格中使用 LPLinkView。在滚动重用单元格时,最初会显示回收单元格的 LinkProvider,然后在网络调用完成后立即更改。我想准备电池以供重复使用。有没有办法将链接提供者元数据设置为零?(类似于 imagview.image = nil)
我将在 prepareForReuse 函数中执行此操作。
我在 tableview 单元格中使用 LPLinkView。在滚动重用单元格时,最初会显示回收单元格的 LinkProvider,然后在网络调用完成后立即更改。我想准备电池以供重复使用。有没有办法将链接提供者元数据设置为零?(类似于 imagview.image = nil)
我将在 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
}
})
}
}
}