Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 从url下载数据时,重新加载uitableviewcell内的集合视图_Ios_Swift_Uitableview_Uicollectionview - Fatal编程技术网

Ios 从url下载数据时,重新加载uitableviewcell内的集合视图

Ios 从url下载数据时,重新加载uitableviewcell内的集合视图,ios,swift,uitableview,uicollectionview,Ios,Swift,Uitableview,Uicollectionview,所以我在表视图单元格中有一个集合视图,没有下载url中的表视图类数据,假设图像已下载,然后我需要在这些集合视图单元格中显示这些图像,因此,我正在做的是重新加载表视图,但集合视图没有重新加载,我需要用下载的数据重新加载这些视图确实很容易(假设您的viewController、customTableViewCell和customCollectionViewCell工作正常),在需要在表视图单元格内重新加载CollectionView时,在声明表视图的控制器中使用以下代码: //在ViewContro

所以我在表视图单元格中有一个集合视图,没有下载url中的表视图类数据,假设图像已下载,然后我需要在这些集合视图单元格中显示这些图像,因此,我正在做的是重新加载表视图,但集合视图没有重新加载,我需要用下载的数据重新加载这些视图

确实很容易(假设您的viewController、customTableViewCell和customCollectionViewCell工作正常),在需要在表视图单元格内重新加载CollectionView时,在声明表视图的控制器中使用以下代码:

//在ViewController中

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在图像视图上使用后台加载?像sd_webimage library?是的,我会这样做,但首先我需要获取图像的URL列表。一旦获取了该列表,我想将其发送到单元格并在那里重新加载集合视图,我已经在那里设置了一个出口,但当我尝试在iTunes中重新加载数据时,它为零。如果可能,使用延迟加载从tableview单元格的子视图获取集合视图。尝试重新加载该集合视图,它将正常工作。