博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
cell选中后进入重用池出来选中状态消失
阅读量:5071 次
发布时间:2019-06-12

本文共 2803 字,大约阅读时间需要 9 分钟。

#import "XXViewController.h"

 

@interface XXViewController ()<UITableViewDelegate,UITableViewDataSource>

{

    UITableView *_table;

}

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

@property (nonatomic, strong) NSMutableArray *arrCellSelect;

//cell的个数的数组

@property (nonatomic, strong) NSArray *arrCellCount;

@end

 

@implementation XXViewController

 

- (void)viewDidLoad {

    [super viewDidLoad];

    

    // Do any additional setup after loading the view.

}

 

- (void)creatTable{

    _table = [[UITableView alloc]initWithFrame:[UIScreen mainScreen].bounds style:(UITableViewStylePlain)];

    [self.view addSubview:_table];

    _table.delegate = self;

    _table.dataSource = self;

}

//网络请求

- (void)dataHadel{

//此处获取cell的个数数组

    self.arrCellCount = [NSArray array];

    self.arrCellCount = @[@"0",@"1",@"2",@"3",@"4",@"5",@"6",@"7",@"8",@"9"];

   //遍历cell的个数,添加cell对应的选中状态

    for (int i =0 ; i< self.arrCellCount.count; i++) {

        [_arrCellSelect addObject:@(NO)];//一开始cell为不选中

    }

}

 

- (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 = [_table 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 = @"我落选了";

    }

      [_table reloadRowsAtIndexPaths:[NSArray arrayWithObject:indPath] withRowAnimation:(UITableViewRowAnimationNone)];

}

 

 

- (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

转载于:https://www.cnblogs.com/lsh1234/p/5779632.html

你可能感兴趣的文章
轻松学MVC4.0–6 MVC的执行流程
查看>>
redis集群如何清理前缀相同的key
查看>>
Python 集合(Set)、字典(Dictionary)
查看>>
获取元素
查看>>
proxy写监听方法,实现响应式
查看>>
cocos2dx CCEditBox
查看>>
第一阶段冲刺06
查看>>
十个免费的 Web 压力测试工具
查看>>
面试题
查看>>
EOS生产区块:解析插件producer_plugin
查看>>
lintcode-easy-Remove Element
查看>>
mysql重置密码
查看>>
jQuery轮 播的封装
查看>>
一天一道算法题--5.30---递归
查看>>
switchcase的用法
查看>>
React.js 小书 Lesson15 - 实战分析:评论功能(二)
查看>>
Java基础03 构造器与方法重载
查看>>
kafka的使用
查看>>
编写Nginx启停服务脚本
查看>>
这些老外的开源技术养活了很多国产软件
查看>>