qq_35592636
qq_35592636
采纳率66.7%
2016-08-11 01:47

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

30
已采纳

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

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 复制链接分享
  • 邀请回答

9条回答

  • bddzzw bddzzw 5年前

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

    点赞 评论 复制链接分享
  • xiangchao502088292 不二修 5年前

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

    点赞 1 评论 复制链接分享
  • qq_30608949 一切随性 5年前

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

    点赞 1 评论 复制链接分享
  • Yj_sail sailip 5年前

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

    点赞 评论 复制链接分享
  • lf125lli lf125lli 5年前

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

    点赞 评论 复制链接分享
  • bao_baoza bao_baoza 5年前

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

    点赞 评论 复制链接分享
  • happyshaotang2 绍棠 5年前

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

    点赞 评论 复制链接分享
  • baidu_35101424 Night-越夜越娇媚 5年前

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

    点赞 评论 复制链接分享
  • hi_chen_xingwang 朕就是这么帅 5年前

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

    点赞 评论 复制链接分享