iOS 中tableView 多选时怎么更改cell前的选中框样式

iOS 中tableView 多选时怎么更改cell前的选中框样式

一直想做一个好一点的demo给大家,今天也是由于时间匆匆就大致写了一下tableView多选时,怎么更改前面的的选中款,使之变为自己想要的颜色和大小呢,下面我来为大家奉上我的多选之道.
先看效果图 是不是符合你的心意:

附上git地址:https://github.com/chenshunyi/SelectTableViewCell.git

iOS 中tableView 多选时怎么更改cell前的选中框样式

iOS 中tableView 多选时怎么更改cell前的选中框样式

1.第一步:
要想实现多选的状态首先写一个自带改变tableView编辑状态按钮的viewController,如下图:
iOS 中tableView 多选时怎么更改cell前的选中框样式
代码如下:
iOS 中tableView 多选时怎么更改cell前的选中框样式
我之所以用自定义的cell是因为,方便更改多选时候前面的选择框

2.第二步:
要想改变多选款的颜色还要在cell里面,在cell准备适配的时候,改变选中时需要显示的多选框:
iOS 中tableView 多选时怎么更改cell前的选中框样式
到此,我们已经写完了一个tableView多选时候使用自定义选中框的逻辑. 但是还没完,如果你的cell的选中状态是默认状态的话,这样写完全没错,不会出现重用的状态,如果你的选中状态是cell.selectionStyle = UITableViewCellSelectionStyleNone;的话,那你就要小心了,因为革命还没有结束,还需艰苦奋斗.现在的你需要看第三步,

3.第三步:
如果你的cell的选中状态是cell.selectionStyle = UITableViewCellSelectionStyleNone;的情况 ,请看下图:
iOS 中tableView 多选时怎么更改cell前的选中框样式
再选中的时候把你当前选中的行数存起来,取消选中的时候把你取消的行数从你的数组中移除,现在你的就疑问了,我存起来干嘛?
如果你有这个疑问就说明你离成功就只差一步之遥了,请接着看第四步,
4.第四步:在你上滑下滑的时候cellForRow会不停的调用,所以在这里你需要处理一下你的数据,把你在第三步存的行数,在cellForRow中找到对应的行,让他变为选中状态,(ps:为什么要在这里让他变为选中状态? 因为你的cell的选中状态cell.selectionStyle = UITableViewCellSelectionStyleNone;已经设为NO,也就是说每次cellForRow的时候,你的cell都会被变为飞行汉中状态因此你所做的全选的标记也被清洗一空,甚至会出现,选中状态乱掉的情况)
为了解决上面的问题,请按下图处理:

iOS 中tableView 多选时怎么更改cell前的选中框样式

至此,你的tableView更改多选状态框的问题已经解决,如有问题请留言,新人驾到,请多多关照!