根据点击的顺序,使每个collectionview单元格在点击时具有不同的颜色

时间:2019-06-08 23:02:11

标签: swift uicollectionview

我希望集合视图中第一个选定单元格的颜色与数组中的第一种颜色相对应,下一个选定单元格的颜色与数组中的第二种颜色相对应,以此类推。这意味着我有一个数组

let colorArray:[UIColor] = [UIColor.blue, UIColor.green, UIColor.red]

我希望第一个选定的单元格为蓝色,下一个绿色,下一个红色。如果我取消选择三个单元格中的两个,它们将不再着色,下一个选定的单元格将变为绿色。

我知道有很多方法可以做到,但是我是通过单元格的isHighlighted属性的设置来设置背景色的,所以我需要在突出显示属性被传递之前将颜色传递给单元格组。设置属性后,将调用didSelectItemAt方法,因此该方法不起作用。

override var isHighlighted: Bool {

        didSet  {

            if isHighlighted {
                //set background color here
            }

最好是有一种与willSelectAtPath类似的方法,例如与tableview单元格一样,但是我发现的只是shouldSelectItemAt,并且在设置突出显示的属性之前不会调用它。

现在,我正在遍历所有可见单元格并将它们的当前color属性设置为当前活动颜色,但这似乎很麻烦。

0 个答案:

没有答案