cell选中后进入重用池出来选中状态消失

Posted 落花伊人

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了cell选中后进入重用池出来选中状态消失相关的知识,希望对你有一定的参考价值。

cell选中后进入重用池出来选中状态消

#import "ClickOnCellMultipleChoiceViewController.h"

@interface ClickOnCellMultipleChoiceViewController ()<UITableViewDelegate,UITableViewDataSource>

@property (nonatomic , strong) UITableView *tableView;




//定义一个数组来记录cell的是否选中的状态

@property (nonatomic, strong) NSMutableArray *arrCellSelect;

//cell的个数的数组

@property (nonatomic, strong) NSArray *arrCellCount;

@end

@implementation ClickOnCellMultipleChoiceViewController

- (void)viewDidLoad {
    [super viewDidLoad];
    
    
    [self creatTable];
    
    [self dataHadel];
    
    
}



- (void)creatTable{
    
    self.tableView = [[UITableView alloc]initWithFrame:[UIScreen mainScreen].bounds style:(UITableViewStylePlain)];
    
    [self.view addSubview:self.tableView];
    
    self.tableView.delegate = self;
    
    self.tableView.dataSource = self;
    
}

//网络请求

- (void)dataHadel{
    
    //此处获取cell的个数数组
    
    self.arrCellCount = [NSArray array];
    
    self.arrCellCount = @[@"0",@"1",@"2",@"3",@"4",@"5",@"6",@"7",@"8",@"9"];
    
    //遍历cell的个数,添加cell对应的选中状态
    
    _arrCellSelect = [NSMutableArray array];
    for (int i =0 ; i< self.arrCellCount.count; i++) {
        
        [_arrCellSelect addObject:@(NO)];//一开始cell为不选中
        
    }
    
    
    [self.tableView reloadData];
    
}



- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView{
    
    return 1;
    
}



- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section{
    
    return self.arrCellCount.count;
    
}



- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{
    
    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"cell"];
    
    if (!cell) {
        
        cell = [[UITableViewCell alloc]initWithStyle:(UITableViewCellStyleValue1) reuseIdentifier:@"cell"];
        
    }
    
    if ([[self.arrCellSelect objectAtIndex:indexPath.row] isEqual:@(NO)]) {
        
        cell.detailTextLabel.text = @"我落选了";
        
    }
    
    else{
        
        cell.detailTextLabel.text = @"我入选了";
        
    }
    
    cell.textLabel.text = self.arrCellCount[indexPath.row];

    
    
    return cell;
    
}



- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath{
    
    UITableViewCell *cell = [tableView cellForRowAtIndexPath:indexPath];
    
    NSIndexPath *indPath = [NSIndexPath indexPathForRow:indexPath.row inSection:indexPath.section];
    
    if ([[_arrCellSelect objectAtIndex:indexPath.row] isEqual:@(NO)]) {
        
        [_arrCellSelect replaceObjectAtIndex:indexPath.row withObject:@(YES)];
        
        cell.detailTextLabel.text =@"我入选了";
        
        
        
    }
    
    else{
        
        [_arrCellSelect replaceObjectAtIndex:indexPath.row withObject:@(NO)];
        
        cell.detailTextLabel.text = @"我落选了";
        
    }
    
    [self.tableView reloadRowsAtIndexPaths:[NSArray arrayWithObject:indPath] withRowAnimation:(UITableViewRowAnimationNone)];
    [self.tableView reloadData];
    
    
    
   
    
    
}





- (void)didReceiveMemoryWarning {
    [super didReceiveMemoryWarning];
    // Dispose of any resources that can be recreated.
}

/*
#pragma mark - Navigation

// In a storyboard-based application, you will often want to do a little preparation before navigation
- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender {
    // Get the new view controller using [segue destinationViewController].
    // Pass the selected object to the new view controller.
}
*/

@end

以上是关于cell选中后进入重用池出来选中状态消失的主要内容,如果未能解决你的问题,请参考以下文章

css 跳转页面后,菜单成选中状态

elementUI的导航栏在刷新页面的时候选中状态消失的解决

tableView里选中一行cell其它不选中的方法

向下滚动时如何使 UIButton 在表格视图中保持选中状态

Android入门第28天-ListView嵌套CheckBox在滚动时失去选中状态的问题

Java线程入门第一篇