我有一个UITableView Controller类,它的内部是一个String数组。
Table View 具有1个单元格原型(prototype),并且其中包含一个具有1个单元格原型(prototype)的UICollectionView。

通过将数组传递到tableview单元(即UICollectionView委托(delegate)和DataSource)中来填充CollectionView。

当我对TableViewController内的数组进行更改并调用self.tableView.reloadData()时,单元格内的CollectionView不会更新。

我该如何解决?

谢谢

编辑:

TableViewController中的代码:

@IBAction func addToArrayAction(sender: AnyObject) {
        self.testArray.append("Ant-Man")
        self.tableView.reloadData()
    }

    var testArray = ["Guardinas", "Iron Man", "Avengers", "Captain America"]

override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
        let cell = tableView.dequeueReusableCellWithIdentifier("collectionContainerCell", forIndexPath: indexPath) as! TableViewCell
        cell.testArray = self.testArray
        return cell
    }

UITableViewCell中的代码:
var testArray: [String]?

    override func awakeFromNib() {
        super.awakeFromNib()

        self.collectionView.delegate = self
        self.collectionView.dataSource = self

    }

    func collectionView(collectionView: UICollectionView, cellForItemAtIndexPath indexPath: NSIndexPath) -> UICollectionViewCell {
        let cell = self.collectionView.dequeueReusableCellWithReuseIdentifier("collectionViewCell", forIndexPath: indexPath) as! CollectionViewCell

        cell.movieTitleLabel.text = self.testArray![indexPath.item]
        cell.movieYearLabel.text = "2016"

        return cell
    }

最佳答案

请尝试在数组中的每个更新上调用reloadDataUICollectionView
如果仅在UITableView中使用一个单元格,则可以在cellForRowAtIndexPathUITableView方法中重新加载,否则可以在调用reloadDataUITableView之后调用。

关于UITableView上的iOS Swift ReloadData无法刷新UITableViewCell内部的UICollectionView,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/33713744/

10-12 21:31