• tableView的单选问题


    在我们开发的过程中,很多时候用到tableview的单选问题,具体就是我们点击某个cell后面显示对号,再次点击对号消失.如果我们只是单纯的添加对号,就会导致cell从复用池里面取的时候,后面的对号也会自动的添加上,这就与我们的初衷相违背,那么我们要怎么做呢;下面我就来介绍一种简单的单选问题的解决方案

    原理:

    首先建一个可变数组,数组里面存储的数据是用来标记cell的选择状态,0代表没有被选择,1代表被选择

    数组的数据的个数和cell上添加的数据的个数保持一致

    值得注意的是:

    1:点击的时候,先判断对应的存放标识的数组,如果是0说明我们点击的是一个新的cell,此时我们就要将数组里面所有的数换成0然后执行点击某个将某个替换成1的操作

    2:当点击的是1的时候就不需要,直接将1替换成0就可以了

    3:选择完成之后我们需要刷新一些tableview就可以了

    - (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath{
        
        UITableViewCell *cell = (UITableViewCell *)[tableView cellForRowAtIndexPath:indexPath];
        if ([tagArray[indexPath.row] isEqualToString:@"0"]) {
            
            NSInteger number = tagArray.count;
            [tagArray removeAllObjects];
            for (int i = 0; i < number; i++) {
                [tagArray addObject:@"0"];
            }
            
            cell.accessoryType = UITableViewCellAccessoryCheckmark;
            [tagArray replaceObjectAtIndex:indexPath.row withObject:@"1"];
            
            [tableView reloadData];
        } else if ([tagArray[indexPath.row] isEqualToString:@"1"]) {
            
            [tagArray replaceObjectAtIndex:indexPath.row withObject:@"0"];
            cell.accessoryType = UITableViewCellAccessoryNone;
        }
        
    }

    然后 在cell的创建里面,我们需要对对应的标识数组进行判断,然后我们判断其是否被选择

     if ([tagArray[indexPath.row] isEqualToString:@"0"]) {
            cell.accessoryType = UITableViewCellAccessoryNone;
        } else {
            cell.accessoryType = UITableViewCellAccessoryCheckmark;
        }

    这样我们就完成了简单的单选

    解决这类问题还有其他的方法,比如我们在对cell进行赋值的时候.我们用的是model.那么此时我们就可以在model里面添加一条新的属性,这个属性专门是用来标记cell的选择状态

  • 相关阅读:
    51nod 1494 选举拉票 | 线段树
    51nod 1295 XOR key | 可持久化Trie树
    Codeforces 438D (今日gg模拟第二题) | 线段树 考察时间复杂度的计算 -_-|||
    51nod 1563 坐标轴上的最大团(今日gg模拟第一题) | 线段覆盖 贪心 思维题
    良心的可持久化线段树教程
    51nod 1593 公园晨跑 | ST表(线段树?)思维题
    51nod 1595 回文度 | 马拉车Manacher DP
    51nod 1522 上下序列
    胡小兔的OI日志3 完结版
    51nod 1510 最小化序列 | DP 贪心
  • 原文地址:https://www.cnblogs.com/nsjelly/p/4512251.html
Copyright © 2020-2023  润新知