类似这样的选中状态
![](https://img.laitimes.com/img/__Qf2AjLwojIjJCLyojI0JCLiAzNfRHLGZkRGZkRfJ3bs92YsYTMfVmepNHL9UEROl3Zq1EeRRVT3V1MMBjVtJWd0ckW65UbM5WOHJWa5kHT20ESjBjUIF2X0hXZ0xCMx81dvRWYoNHLrdEZwZ1Rh5WNXp1bwNjW1ZUba9VZwlHdssmch1mclRXY39CXldWYtlWPzNXZj9mcw1ycz9WL49zZuBnL2kjN5EjM0cTM2ITOwkTMwIzLc52YucWbp5GZzNmLn9Gbi1yZtl2Lc9CX6MHc0RHaiojIsJye.png)
cell中的代码(直接上代码)
.h 定义一个属性
@property (nonatomic, assign) BOOL isSelect;
.m里面实现
- (void)setIsSelect:(BOOL)isSelect
{
_isSelect = isSelect;
if (isSelect)
{
self.stateImageView.image = [UIImage imageNamed:@"radio_s"];
}
else
{
self.stateImageView.image = [UIImage imageNamed:@"radio_n"];
}
}
控制器代理的方法
添加一个属性索引
@implementation XXXXXViewController{
// 单选的时候记录选中的索引
NSInteger _currentSelectedIndex;
}
代理里面的方法
-(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{
XXXViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"XXX"];
if (indexPath.row == _currentSelectedIndex) {
cell.isSelect = YES;
}else{
cell.isSelect = NO;
}
return cell;
}
-(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath{
[tableView deselectRowAtIndexPath:indexPath animated:NO];
// 单选
if (indexPath.row != _currentSelectedIndex)
{
_currentSelectedIndex = indexPath.row;
[self.tableView reloadData];
}
}