UITableViewCell它有两个属性highLighted、selected。很明显一个是高亮状态, 一个是选中状态。
UITableViewCell, 对应的2个方法
// 高亮状态调用的方法
- (void)setHighlighted:(BOOL)highlighted animated:(BOOL)animated; // 选中状态调用的方法
- (void)setSelected:(BOOL)selected animated:(BOOL)animated;

// 这个方法让tableView 默认选择第一个
[self selectRowAtIndexPath:indexPath animated:NO scrollPosition:UITableViewScrollPositionNone];
当我们点击cell的时候,其实是先设置cell的高亮状态为YES, 因为cell首先是出于高亮状态, 然后松手的时候再将cell的高亮状态设置为NO, 接着才是设置cell的选中状态为YES, 最后才会去调用delegate中的tableview:didSelectRowAtIndexPath:方法。
 
但是在开发中你会遇到点击cell, 如果cell的某行不需要被选中你要手动去设置取消点击cell选中状态, 那么就不能去调用 setSelected, 如果你调用setSelected取消cell选中, 你再滑动回当前行你会发现他还是被选中状态, 个人感觉是因为tableview 有个记录器, 记录当前你选中的是那些cell, 
 
真正调用的是tableview的方法
// 取消选中某行
- (void)deselectRowAtIndexPath:(NSIndexPath *)indexPath animated:(BOOL)animated;

调用它之后, 系统会调用setSelected, 并且传进去的参数是NO, 这样就会取消选中

- (void)setSelected:(BOOL)selected animated:(BOOL)animated;
 

tableView选中行的调用顺序/ 取消选中Cell的更多相关文章

  1. 【easyUI】取消easyui行点击选中事件,智能通过勾选checkbox才能选中行

    背景:项目中使用easyui作为前端架子.datagrid默认是点击行就选中此行然后变色. 需求:点击行不让此行选中:只能通过点击复选框才能选中某一行. 解决思路: 1.写点击行函数function ...

  2. UITableView取消选中颜色、常用操作

    UITableView取消选中颜色.常用操作   使用空白view取代cell - (UITableViewCell *)tableView:(UITableView *)tableView cell ...

  3. listview改变选中行字体颜色

    [android]listview改变选中行字体颜色 目标:选中item,其字体设置为#3197FF,未选中的,其字体为#FFFFFF 与listvew设置选中行item背景图片一样,使用select ...

  4. DataGridView取消默认选中行

    DataGridView在添加数据后会默认选中第 一个单元格或者第一行,我就想取消它的默认选中行.在DataGridView绑定数据之后加上了ClearSelection().这样一来,不论是启动窗体 ...

  5. DEV GridControl.TableView FocusedRow选中行背景颜色

    上次修改了TableView.RowStyle,导致了一个问题:覆盖了GridControl默认的选中行颜色. 于是需要重写选中行的颜色. 刚开始的想法是: <dxg:TableView> ...

  6. cell选中与取消选中调用的方法

    //选中与取消选中都会调用哦,注意!!- (void)setSelected:(BOOL)selected animated:(BOOL)animated{ [super setSelected:se ...

  7. jQuery操作复选框checkbox技巧总结 ---- 设置选中、取消选中、获取被选中的值、判断是否选中等

    转载:https://blog.csdn.net/chenchunlin526/article/details/77448168 jQuery操作复选框checkbox技巧总结 --- 设置选中.取消 ...

  8. C#中datagridview选中行后textbox显示选中的内容

    我想让datagridview中某一行被选中时,textbox中显示选中的值,datagridview的选中模式是整行:this.dataGridView1.SelectionMode = DataG ...

  9. easyui 上 datagrid 的表头的checkbox全选时 取消选中 disabled的checkbox

    业务需求: 正常情况下,easyui的全选checkbox会选择表中全部的checkbox包括行.及时对checkbox加了disable属性也没有效果.但是现在的业务是当对checkbox加了dis ...

随机推荐

  1. BZOJ4872:[SHOI2017]分手是祝愿——题解

    http://www.lydsy.com/JudgeOnline/problem.php?id=4872 https://www.luogu.org/problemnew/show/P3750 Zei ...

  2. BZOJ 1010: [HNOI2008]玩具装箱toy | 单调队列优化DP

    原题: http://www.lydsy.com/JudgeOnline/problem.php?id=1010 题解: #include<cstdio> #include<algo ...

  3. BZOJ2795/2890/3647 [Poi2012]A Horrible Poem 【字符串hash】

    题目链接 BZOJ2795 BZOJ2890 BZOJ3647 题解 三倍经验! 我们要快速求区间最小循环节 我们知道循环节有如下性质: ①当\(L\)为循环节长度,那么\(s[l...r - L] ...

  4. 【BZOJ 3569】DZY Loves Chinese II 随机化+线性基

    用到一个结论——[先建树,再给每个非树边一个权值,每个树边的权值为覆盖他的非树边的权值的异或和,然后如果给出的边存在一个非空子集异或和为0则不连通,否则连通](必须保证每条边的出现和消失只能由自己产生 ...

  5. 使用Phoenix将SQL代码移植至HBase

    1.前言 HBase是云计算环境下最重要的NOSQL数据库,提供了基于Hadoop的数据存储.索引.查询,其最大的优点就是可以通过硬件的扩展从而几乎无限的扩展其存储和检索能力.但是HBase与传统的基 ...

  6. The database cluster was initialized with RELSEG_SIZE 1048576, but the server was compiled with RELSEG_SIZE 8388608

    由于一次误操作,将线上机器的数据库程序目录删除,虽然不影响程序的正常使用,数据也未丢失,但后面如果出现服务器宕机或数据库宕机,数据库将无法启动,而且数据库对应的编译参数也已无法查看,所以征得开发同意后 ...

  7. Tree and Permutation dfs hdu 6446

    Problem Description There are N vertices connected by N−1 edges, each edge has its own length.The se ...

  8. SCU 4527 NightMare2 最短路+二分 好题

    可怜的又做噩梦了..但是这次跟上次不大一样,虽然他又被困在迷宫里,又被装上了一个定时炸弹,但是值得高兴的是,他发现他身边有数不清的财宝,所以他如果能带着这些财宝并活着逃出去的话,他就发财啦.不过,这次 ...

  9. zTab layui多标签页组件

    zTab zTab是一个layui多标签页插件,仿照了layuiAdmin的iframe版Tab实现 当前版本v1.0 码云地址:https://gitee.com/sushengbuyu/zTab ...

  10. Scrapy中的Callback如何传递多个参数

    在scrapy提交一个链接请求是用 Request(url,callback=func) 这种形式的,而parse只有一个response参数,如果自定义一个有多参数的parse可以考虑用下面的方法实 ...