如何让UICollectionView单元格在其setSelected:方法中进行多选?

时间:2017-05-09 11:00:53

标签: ios objective-c uicollectionview

这是我的UICollectionView:

在收集单元格中,有一个setSelected:方法我可以选择单元格颜色:

- (void)setSelected:(BOOL)selected {

    [super setSelected:selected];

    //self.selected = !selected;

    // checked
    if (selected) {
        self.backView.backgroundColor = APP_COLOR;
        self.number_label.textColor = [UIColor whiteColor];
        self.multiple_label.textColor = [UIColor whiteColor];

    }
    // uncheck
    else {

        self.backView.backgroundColor = [UIColor whiteColor];
        self.number_label.textColor = HexRGB(0x999999);
        self.multiple_label.textColor = HexRGB(0xcccccc);
    }
}

但在我的tableView中,如果单击其他单元格,则取消选中所选单元格,因此单元格中只检查了一个单元格。

那么,我怎样才能在UICollectionView中多列选择单元格?

3 个答案:

答案 0 :(得分:1)

您应该将allowsMultipleSelection设置为YES

  

一个布尔值,用于确定用户是否可以在集合视图中选择多个项目。

     

此属性控制是否可以同时选择多个项目。此属性的默认值为 false 。   当此属性的值为 true 时,点击单元格会将其添加到当前选择中(假设委托允许选择单元格)。再次点击单元格会将其从选择中删除。

答案 1 :(得分:0)

UITableViewUICollectionView都有@property (nonatomic) BOOL allowsMultipleSelection; // default is NO将其设置为YES。

答案 2 :(得分:0)

其他方式是在didSelectItemAtIndexPath上的数组中存储indexPath并检入数组(如果它已经存在)然后删除其他add in array。在cellForItemAtIndexPath方法中比较数组中的indexPath。