优雅的实现TableViewCell单选

最近有些忙,好久没有写博客了。
分享一个 cell 做单选的思路

可行的思路

在 tableview 的控制器中设立一个变量记录选择的 indexPath,点击 cell 之后刷新表格来和现有 indexPath 对比 和第一种大同小异,做一个和 dataArr 同样的数组,记录 indexPath,循环确定当前 cell 是否为选中 cell 利用 cell 的- (void)setSelected:(BOOL)selected animated:(BOOL)animated方法

利弊分析

前两种,都需要在didSelectRowAtIndexPath方法中来刷新表格,可能会造成不必要的滑动,而且需要单独的外在属性来记录这个选择 第三种方法是我要介绍的,不用任何外在属性,不用变量,不用数组。实现 cell、或 cell 中 Button 的单选。并且不会因为复用而造成位置错乱,如果要实现 cell 的多选可以参考我之前的文章Cell 的 accessoryType 属性标记单元格之后,出现的重用问题

实现方式

如果要有默认选择在初始化 tableView 完成后写

然后在 cell 中实现- (void)setSelected:(BOOL)selected animated:(BOOL)animated方法

didSelectRowAtIndexPath方法中给点击的 cell 手动选中,并不需要刷新表格

至此结束,可以看一下效果
效果图.md.gif

文章来源:

Author:Oragekk's Blog
link:https://oragekk.me/posts/iOS/ui/优雅的cell单选.html