iOS UICollectionViewCell上有Button点击实现收藏效果

在iOS开发中,遇到一个需求:点击UICollectionView Cell内的Button实现星星从空心到实心的收藏效果。然而实际操作中,由于Cell复用和点击事件处理不当,导致多处问题,如点击错乱、Cell滚动时图片改变、刷新后状态丢失。为解决这些问题,文中介绍了问题分析及完整的代码实现方案。
摘要由CSDN通过智能技术生成

一、发现问题

前几天做项目的时候遇到了一个问题困扰我好久,问题是这样的:下图中cell上有一个button(空的星星),我想实现的效果是点击把空心的星星变成实心的星星,再点就换回来,就是视觉上的收藏、取消收藏效果。而获取的数据没有标志这一项的,需要自己做。刚开始感觉很简单无非就是点击换个图片,用个BOOL值来判断就可以了,但是后来发现完全不是这么回事,由于button是在cell上,而cell是相同的而且是重用的,这样就有好多问题:

(1)在点击任意一个button的时候都会走同一个点击方法,造成点击换图时发生错乱;

(2)点击某一个button变成黑色实心星星,往上滑的时候发现下别有的button的图片也换了(由cell的重用机制造成);

(3)下拉刷新的时候以前button换实心图片的也就又换回空心的了。



二、解决问题

后来经过思考,认识到cell只是展示数据的载体,数据是不断的变化的,也
  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值