从数组中删除CollectionView单元类?

时间:2017-09-18 18:06:49

标签: ios arrays swift3

我正在使用带有CollectionViewCells数组的UICollectionView创建一个向导:

var viewCells:[BaseCVCell] = [createEventSubjectSearch(), createEventEventForm()] 

根据用户控制的一系列UISwitch动态添加此数组。我可以使用下面的代码添加到数组中,但是当用户关闭开关时,我似乎无法移除项目。

func switchToggled(sender : UISwitch) {

    if sender == createDiarySwitch {
        if sender.isOn {
            parentClass?.viewCells.append(createEventDeferEvent())
        } else {
            if let i = parentClass?.viewCells.index(where: { $0 == createEventDeferEvent() }) {
                parentClass?.viewCells.remove(at: i)
            }
        }
    }

    if sender == createDeferredSwitch {
        if sender.isOn {
            parentClass?.viewCells.append(createEventDiariseEvent())
        } else {
            if let i = parentClass?.viewCells.index(where: { $0 == createEventDiariseEvent() }) {
                parentClass?.viewCells.remove(at: i)
            }
        }
    }

    parentClass?.wizardCollectionView.reloadData()

}

我已尝试过上述代码,以及:

if let index = parentClass?.viewCells.index(of: createEventDiariseEvent()) {
    parentClass?.viewCells.remove(at: index)
}

两种方法都不起作用(没有错误,代码永远不会返回值)。我想尝试避免在可能的情况下命名元素。有没有办法做到这一点?

1 个答案:

答案 0 :(得分:0)

感谢您的回答,DonMag

我通过在主类中实例化两个动态单元来实现所需的功能:

Dim cell as Object

For Each cell in Selection
    cell.value = cell.value / 1000000
Next cell

然后在循环调用中如此:

let diariseCell : createEventDiariseEvent()

现在有魅力。令人惊讶的是另一双眼睛可以挑选出来的东西!