下载来自 url 的数据时,重新加载 uitableviewcell 内的 Collection 视图
Posted
技术标签:
【中文标题】下载来自 url 的数据时,重新加载 uitableviewcell 内的 Collection 视图【英文标题】:Reload Collection view that is inside a uitableviewcell when data from a url is downloaded 【发布时间】:2016-03-14 07:49:49 【问题描述】:所以我在表格视图单元格中有一个集合视图,没有从 url 下载表格视图类数据,假设图像已下载,然后我需要在这些集合视图单元格上显示这些图像,所以我正在做的是重新加载表视图,但集合视图没有重新加载,我需要用下载的数据重新加载那些视图
【问题讨论】:
你为什么不在 url 的图像视图上使用背景加载?喜欢 sd_webimage 库吗? 是的,我会这样做,但首先我需要获取图片的 url 列表 获取该列表后,我想将其发送到单元格并在那里重新加载集合视图,我在那里放了一个插座,但是当我尝试在其中重新加载数据时它为零 尽可能使用延迟加载developer.apple.com/library/ios/samplecode/LazyTableImages/… 从 tableview 单元的子视图中获取 Collectiview。尝试重新加载该集合视图它将起作用。 【参考方案1】:确实很简单(假设您的 viewController、customTableViewCell 和 customCollectionViewCell 工作正常),只要您需要在表格视图单元格中重新加载 collectionView,请在您声明表格视图的控制器中使用此代码:
// 在你的视图控制器中
var myRow = 0 // set the index path row of your tableview cell
var mySection = 0 // and the index path section
DispatchQueue.main.async(execute:
if let index = IndexPath(row: myRow, section: mySection) as? IndexPath
if let cell = self.MyTableView.dequeueReusableCell(withIdentifier: "cell", for: index) as? MyCustomTableViewCell
cell.collectionReloadData()
)
现在在您的 TableViewCell 中
class MyCustomTableViewCell: UITableViewCell, UICollectionViewDelegate, UICollectionViewDataSource, UICollectionViewDelegateFlowLayout
@IBOutlet weak var collectionView: UICollectionView!
func collectionReloadData()
DispatchQueue.main.async(execute:
self.collectionView.reloadData()
)
//Dont forget to set delegates
override func awakeFromNib()
super.awakeFromNib()
self.collectionView.delegate = self
self.collectionView.dataSource = self
这里有一个此代码的示例,第 3 节“Cartas Recomendadas”中的集合视图已重新加载:
【讨论】:
以上是关于下载来自 url 的数据时,重新加载 uitableviewcell 内的 Collection 视图的主要内容,如果未能解决你的问题,请参考以下文章
使用下载的数据中的 iframe 组件重新加载 UIWebview