如何删除集合视图中的节

时间:2016-08-12 04:04:29

标签: swift uicollectionview sections

如何从控制器视图中删除单个部分?标题中有一个按钮,一切都已连接。只是不确定如何编写3个不同部分的代码。

我的数据模型

var fire = [UIImages]
var water = [UIImages]
var air = [UIImages]

var fireLabel = [String]
var waterLabel = [String]
var airLabel = [String]

我的手机配置代码

override func collectionView(collectionView: UICollectionView, cellForItemAtIndexPath indexPath: NSIndexPath) -> UICollectionViewCell {

    if indexPath.section == 0 {

        let cell = collectionView.dequeueReusableCellWithReuseIdentifier(cellIdentifier, forIndexPath: indexPath) as! CollectionViewCell

        cell.fire.image = fireImages[indexPath.row]
        cell.fireLabel.text = fireNames[indexPath.row]


    return cell

    } else if indexPath.section == 1 {

        let cell = collectionView.dequeueReusableCellWithReuseIdentifier(cellIdentifier, forIndexPath: indexPath) as! CollectionViewCell

        cell.water.image = waterImages[indexPath.row]
        cell.waterLabel.text = waterNames[indexPath.row]

        return cell

    } else {

        let cell = collectionView.dequeueReusableCellWithReuseIdentifier(cellIdentifier, forIndexPath: indexPath) as! CollectionViewCell

        cell.air.image = airImages[indexPath.row]
        cell.airLabel.text = airNames[indexPath.row]

        return cell

    }

}

这是我的按钮代码,它在每个标题中。我想要做的是当你点击这个按钮时,它会删除整个部分。再来一次。但我似乎无法使其发挥作用。

//Delete Section Button
@IBAction func deleteSectionButton(sender: UIButton) {

    //Section tag
    let section = sender.tag

    //Update data model
    fireImages.removeAtIndex(section)
    fireNames.removeAtIndex(section)

    self.collectionView?.deleteSections(NSIndexSet(index: section))

}

我收到此错误:

***由于未捕获的异常终止应用程序' NSInternalInconsistencyException',原因:'无效更新:无效的部分数量。更新(3)后集合视图中包含的节数必须等于更新前的集合视图中包含的节数(3),加上或减去插入或删除的节数(插入0,1删除)'

但我不知道这意味着什么。

1 个答案:

答案 0 :(得分:0)

您可以在更新数据后重新加载集合视图。它将按比例填充您的数据到集合视图

self.collectionView.reloadData();