先看需求 如上图,需求需要在一堆复用的自定义cell中 点击一个cell 在当前cell显示选中按钮 如果单纯的在cell里添加Btn再在didselect方法中去修改按钮状态,那么就会出现别的cell中也出现了一个选中的按钮. 这是由于cell的复用导致的 为了避免这个情况,这里的思路就是, 1.在cell中添加按钮,并且为按钮添加代理方法返回控制器 2.为cell创建一个Model ,model里面除了常规的显示数据外,还要预留一个Index 用来标记每个cell中的Btn.tag (这样的好处是,即使UI中cell复用了,但是每次点击的cell中的btn.tag是唯一的) 3.为cell预留一个SelectArray数组公共属