ios collectionview怎么存储已经点击过的cell

我最近用一个日历 需要支持多选。假如我在八月份里面选取了n个cell 又到九月份远去了n个cell当我再返回八月的时候 当时点击过得没有了。我在cellforrow方法里面给cell设置了一个默认的bool为NO点击的时候为yes 我怎么才能把点击过的cell存起来 等下次到这个页面的时候 重新读出来?

我建议你使用布尔型的数组储存,这样的话你可以定义全局的BOOL flage[31]; 来记录一个月份,当那个月份出现的时候判断是否是数组中存在的,存在就是选中状态。

数据存本地 状态存储到本地,切换页面展示数据时,先从数据库读取状态,在从本机日历读,存成什么形式自己定义.

获取所有点击的item的indexPath 建立一个可变数组存起来 在collectionView初始化时 遍历可变数组取出indexPath 让后让他们选中

存到数据库, 以一个字典或数组的形式.

在每个Cell的数据源中添加一个BOOL类型的标识、来判断是否选中,然后根据BOOL的返回值设置选中和未选中后的状态

给Cell创建一个数据模型,在模型里添加一个BOOL isSelect 属性,选中为YES 否则NO,然后每次加载Cell的时候赋值时都会读取值的 。根据此状态更改cell选中状态。然后可根据自己的需求让他什么时候只可以自己重新全部刷新过取消什么的。

用model去控制. 日历的话 一个cell上面不可能只有一个日期 可能还要有其他的数据. 一个cell 对应一个model, 用model的属性去控制cell的显示和cell的选中, 改变cell的状态时, 对应把model里面的状态也给改变了. 最后遍历一下数据源, 也就是装model的数组, 把状态为选中的model给挑出来就可以了.

存本地的方法有很多,我觉得主要是分析数据模型。比如说,用个字典,字典有两个key 一个mouth 一个 isSlectedArr 。

在你的这个日期model里设置一个默认的bool为NO点击的时候为yes,首先你这个控制器没有被释放的情况下,数据源数组一直在内存中存储的,当然你设为yes了,重新刷新,就可以选中了