表视图单选和多选的实现

1.实现思路:

我的直接思路是修改某一个Cell的样式即可,

那么修改样式需要通过修改对应的数据,

从这里可以推断我们需要给Cell对应的数据设置一个标志位,

当选中的时候来修改该标志位刷新那一行即可

如果是单选实现稍微复杂一些:

单选需要设置一个属性来保存上一次选中的行,

待选中新的行之后需要修改该行,不断维护

2.单选实现的简单代码如下:

 /*实现单选
    NSIndexPath *temp = self.lastSelected;//暂存上一次选中的行
    if(temp && temp!=indexPath)//如果上一次的选中的行存在,并且不是当前选中的这一样,则让上一行不选中
    {
        SelectAssertModel *model = self.selectArray[temp.row];

        model.ifSelected = NO;//修改之前选中的cell的数据为不选中
        [tableView reloadRowsAtIndexPaths:@[temp] withRowAnimation:UITableViewRowAnimationAutomatic];//刷新该行
    }
    self.lastSelected = indexPath;//选中的修改为当前行
    SelectAssertModel *model = self.selectArray[temp.row];
    model.ifSelected = YES;//修改这个被选中的一行choon
    [tableView reloadRowsAtIndexPaths:@[indexPath] withRowAnimation:UITableViewRowAnimationAutomatic];//重新刷新这一行

     */

3.多选实现的简单代码如下:

 SelectAssertModel *model = self.selectArray[indexPath.row];

    if (!model.ifSelected) {
        model.ifSelected = YES;//修改这个被选中的一行

    }
    else{
        model.ifSelected = NO;//修改这个被选中的一行

    }
     [tableView reloadRowsAtIndexPaths:@[indexPath] withRowAnimation:UITableViewRowAnimationAutomatic];//刷新该行
}

4.统计选择的数据:

//"确定"按钮被点击
- (void)rightItemDidClicked:(UIBarButtonItem *)item {

    //每次进来记得清除数组
    [self.selectedArray removeAllObjects];
    for (SelectAssertModel *model in self.selectArray) {
        if (model.ifSelected) {

            [self.selectedArray addObject:model];
        }
    }
    NSLog(@"count = %ld",self.selectedArray.count);
    NSLog(@"count = %@",self.selectedArray);

}
时间: 2025-01-02 00:12:53

表视图单选和多选的实现的相关文章

表单中单选、多选、选择框值的获取及表单的序列化

总结了下在表单处理中单选.多选.选择框值的获取及表单的序列化,写成了一个对象.如下: 1 var formUtil = { 2 // 获取单选按钮的值,如有没有选的话返回null 3 // elements为radio类的集合的引用 4 getRadioValue:function(elements) { 5 var value = null; // null表示没有选中项 6 // 非IE浏览器 7 if(elements.value != undefined && elements.v

IOS开发之表视图(UITableView)

IOS开发之表视图(UITableView)的基本介绍(一) (一):UITableView的基本概念 1.在IOS开发中,表视图的应用十分广泛和普及.因此掌握表视图的用法显得非常重要.一般情况下对于数据的展示 我们都会选择表视图,比如通讯录和一些数据列表. 2.我们可以选择创建表视图也可以创建表视图控制器. (二)UITableView基本样式如下(1:UITableViewStylePlain(普通表视图),2:UITableViewStyleGroup(分组表视图)): (三)UITabl

前端 表单和输入(单选、多选、单行输入等)

HTML 表单和输入 HTML 表单 表单是一个包含表单元素的区域. 表单元素是允许用户在表单中输入内容,比如:文本域(textarea).下拉列表.单选框(radio-buttons).复选框(checkboxes)等等. 表单使用表单标签 <form> 来设置: <form>.input 元素.</form> HTML 表单 - 输入元素 多数情况下被用到的表单标签是输入标签(<input>). 输入类型是由类型属性(type)定义的.大多数经常被用到的

如何在Android的ListView中构建CheckBox和RadioButton列表(Android版支持单选和多选的投票项目)

引言 我们在android的APP开发中有时候会碰到提供一个选项列表供用户选择的需求,如在投票类型的项目中,我们提供一些主题给用户选择,每个主题有若干选项,用户对这些主题的选项进行选择,然后提交. 本文以一个支持单选和多选投票项目为例,演示了在一个ListView中如何构建CheckBox列表和RadioButton列表,并分析了实现的原理和思路,提供有需要的朋友参考. 项目的演示效果如下. 数据源 通常我们的数据源来自于数据库.首先,我们构建投票项目类SubjectItem. /** * 主题

简单表视图

从现在开始进入表视图UITableView,同属UISrollView子类. 包括两个协议UITableViewDelegate, UITableViewDataSource 有一些概念 - 表头视图 header view - 表脚视图 footer view - 单元格 cell - 节 section - 节头 section header - 节脚 section footer 这里有一个可重复定义对象的概念,这是为了节约内存开销而设计,当屏幕翻动时,旧的单元格退出屏幕,新的进入. 如果

第四章:IOS Table表视图搜索功能UISearchBar

UISearchBar经常会跟UITable一齐使用,所以在此就介绍一下UISearchBar 先来看看结构 下面再看看它有哪些样式 基本搜索栏.里面????的Search文字用于提示用户??入查询关??字,搜索栏的Placeholder属性可以设置这个提示信息 带有??除按钮的搜索栏.在??入框中??入文字时,会在后面出现??????除按钮,点????除按钮可以??除??入框中的文字 带有查询结果按钮的搜索栏.显示最??搜索结果,显示设定如图4-31所示,选中 Options下的Shows S

HTML &lt;select&gt; 标签 创建单选或多选菜单

所有主流浏览器都支持 <select> 标签. select 元素可创建单选或多选菜单. <select&> 元素中的 <option> 标签用于定义列表中的可用选项. 提示:select 元素是一种表单控件,可用于在表单中接受用户输入. 属性 New: HTML5 中的新属性. 属性 值 描述 autofocus(5) autofocus 规定在页面加载后文本区域自动获得焦点. disabled disabled 规定禁用该下拉列表. form(5) form

IOS开发中UITableView(表视图)的性能优化及自定义Cell

IOS开发中UITableView(表视图)的滚动优化及自定义Cell IOS 开发中UITableView是非常常用的一个控件,我们平时在手机上看到的联系人列表,微信好友列表等都是通过UITableView实现的.UITableView这个控件中的列表的每一行是一个cell,当UITableView中cell数量特别大的时候,由于每次都需要alloc分配内存并初始化,会导致app运行不流畅,所以可以使用苹果提供的几个方法进行优化,我把这个过程记录下来供自己以后查阅. 当然,既然说到优化,那我们

IOS开发之表视图爱上CoreData

在接触到CoreData时,感觉就是苹果封装的一个ORM.CoreData负责在Model的实体和sqllite建立关联,数据模型的实体类就相当于Java中的JavaBean, 而CoreData的功能和JavaEE中的Hibernate的功能类似,最基本是两者都有通过对实体的操作来实现对数据库的CURD操作.CoreData中的上下文(managedObjectContext)就相当于Hibernate中的session对象, CoreData中的save操作就和Hibernate中的comm