ios开发-商品规格选择

项目中有个商品规格选择如图:


image.png

其实原理就是实现collectionview 的多section 单选,通过model来管理cell的选中状态,通过一个数组dataArray来存储选中的cellIndexPath,但是在实际操作中出现的问题是,在遍历dataArray中又对dataArray进行修改会造成crash.下面是我是现实的代码:

 /**  保存index  */
        if (weakself.indexArray.count >0) {
            for (NSIndexPath *index in weakself.indexArray) {
                if (cellIndexPath.section != index.section) {
                    [weakself.tempArray addObject:cellIndexPath];
                }else if (cellIndexPath.section == index.section){
                    if (indexPath.row != index.row) {
                        //先移除再添加
                        [weakself.tempArray removeObject:index];
                        [weakself.tempArray addObject:cellIndexPath];
                    }
                }
            }
        }else{
            [weakself.tempArray addObject:cellIndexPath];
        }
        if (weakself.indexArray.count > 0) {
            [weakself.indexArray removeAllObjects];
        }
        /** 数组去重 */
        NSSet*set = [NSSet setWithArray:weakself.tempArray];
        [weakself.indexArray addObjectsFromArray:[set allObjects]];

        [weakself.baseCollectionView reloadData];

关键是定义一个tempArr,然后进行去重就得到了选中的IndexPath数组。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容