zoukankan      html  css  js  c++  java
  • cell选中后进入重用池出来选中状态消失

    #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

  • 相关阅读:
    docker下安装mysql数据库
    asp.net core3.0 mvc 用 autofac
    遍历Map的方式
    JAVA 每次从List中取出100条记录
    JAVA 必须掌握技能(三)-Java 基础知识
    JAVA 必须掌握技能-Java 知识结构图
    JAVA 必须掌握技能(二)-Java IO流学习之输入输出流
    JAVA 必须掌握技能(一)-集合类型那么多,如何选择使用List, Set, Map?
    JavaScript 开发必须掌握技能(四)- 更好的使用jQuery attr方法
    JavaScript 开发必须掌握技能(三)- 更好的使用for循环方法
  • 原文地址:https://www.cnblogs.com/lsh1234/p/5779632.html
Copyright © 2011-2022 走看看