今天做个表格,突然发现在选中某行时打勾,再次选中其它行时,上次选中的行的勾还在,不能自动消失。

于是试了以下3种方法:

1、//

第一种方法:在选中时先遍历整个可见单元格,设置所有行的默认样式,再设置选中的这行样式,此方法不能取消单元格的选中

-

(void)tableView:(UITableView

*)tableView

didSelectRowAtIndexPath:(NSIndexPath *)indexPath

{

NSArray *array =

[tableView visibleCells];

for (UITableViewCell *cell in array) {

[cell

setAccessoryType:UITableViewCellAccessoryNone];

cell.textLabel.textColor=[UIColor blackColor];

}

UITableViewCell *cell=[self.tableView cellForRowAtIndexPath:indexPath];

cell.textLabel.textColor=[UIColor blueColor];

[cell setAccessoryType:UITableViewCellAccessoryCheckmark];

}

此时只设定了在可见范围内选择的是一行,还得设置滚动后的选中状态,

-(void)tableView:(UITableView*)tableView

willDisplayCell:(UITableViewCell*)cell

forRowAtIndexPath:(NSIndexPath*)indexPath

{

NSIndexPath *index=[tableView indexPathForSelectedRow];

if (index.row==indexPath.row&&

index!=nil)

{

cell.backgroundColor=[UIColor colorWithRed:232.0/255.0 green:232.0/255.0blue:232.0/255.0 alpha:1.0];

cell.textLabel.textColor=[UIColor colorWithRed:0.0 green:206.0/255.0blue:192.0/255.0 alpha:1.0];

}

else

{

cell.backgroundColor=[UIColor clearColor];

cell.textLabel.textColor=[UIColor blackColor];

}

}

单元格是否相同需要用到比较方法

NSIndexPath

*index=[tableView

indexPathForSelectedRow];

NSComparisonResult result=[indexPath

compare:index];

2、//第二种方法:先定位到最后一行,若选中最后一行直接退出,否则用递归改变上次选中的状态,重新设置本次选中的状态。

- (UITableViewCell *)tableView:(UITableView

*)tableView

cellForRowAtIndexPath:(NSIndexPath *)indexPath

{

current=indexPath.row;

}

- (void)tableView:(UITableView *)tableView

didSelectRowAtIndexPath:(NSIndexPath *)indexPath

{

if(indexPath.row==current){

return;

}

UITableViewCell*newCell =

[tableView cellForRowAtIndexPath:indexPath];

if(newCell.accessoryType==UITableViewCellAccessoryNone)

{

newCell.accessoryType=UITableViewCellAccessoryCheckmark;

newCell.textLabel.textColor=[UIColor blueColor];

}

NSIndexPath*oldIndexPath

=[NSIndexPath indexPathForRow:current

inSection:0];

UITableViewCell*oldCell =

[tableView cellForRowAtIndexPath:oldIndexPath];

if(oldCell.accessoryType==UITableViewCellAccessoryCheckmark)

{

oldCell.accessoryType=UITableViewCellAccessoryNone;

oldCell.textLabel.textColor=[UIColor blackColor];

}

current=indexPath.row;

}

3.//方法三:设置一个全局变量,选中的时候传值,然后通过重新加载数据,使得在选中这行打勾,其他行无样式,此方法加载的时候第一行默认打勾了

-

(void)tableView:(UITableView*)tableView

didSelectRowAtIndexPath:(NSIndexPath*)indexPath

{

current=indexPath.row;

[self.tableView reloadData];

}

- (UITableViewCellAccessoryType)tableView:(UITableView*)tableView

accessoryTypeForRowWithIndexPath:(NSIndexPath*)indexPath

{

if(current==indexPath.row&&current!=nil)

{

return

UITableViewCellAccessoryCheckmark;

}

else

{

return

UITableViewCellAccessoryNone;

}

}

或者直接在

-(UITableViewCell *)tableView:(UITableView

*)tableView

cellForRowAtIndexPath:(NSIndexPath *)indexPath里面设置

单元格的默认高度为44

NSLog(@"%@",NSStringFromCGRect(cell.frame));

设置选中时的背景颜色可以用selectedbackgroundview设置

html单元格选中状态,UITableViewCell 设置单元格选中后只显示一个打勾的状态相关推荐

  1. Datagridview 去掉单元格焦点虚框 和设置单元格不能被选中

    去掉单元格焦点虚框和设置单元格不能被选中 private void kDGV_ghd_RowPrePaint(object sender, DataGridViewRowPrePaintEventAr ...

  2. 设置单元格填充方式_单元格的选择及设置单元格格式

    数据输入完毕,接下来可以设置字体.对齐方式.添加边框和底纹等方式设置单元格格式,从而美化工作表.要对单元格进行设置,首先要选中单元格. 选择单元格 选择单元格是指在工作表中确定活动单元格以便在单元格中 ...

  3. C#:GridControl之 bandedGridView中的单元格自动换行、动态设置单元格行高

    C#:GridControl之 bandedGridView中的单元格自动换行.动态设置单元格行高 1.自动换行 //自动换行//RepositoryItemMemoEdit:一个编辑器,允许显示和编 ...

  4. win7笔记本外接显示器html,window7笔记本外接显示器只显示一个屏幕怎么设置

    许多用户都会偏向于入手win7笔记本电脑,这样电脑携带起来也是非常方便,不过由于屏幕较小的缘故,有用户就会选择外接一台显示器,不过在给win7笔记本外接显示器之后就需要对于其进行设置只显示一个屏幕,接 ...

  5. 计算机设置了桌面显示为什么没有反应,电脑开机后只显示桌面背景,图标没有,鼠标也没有反应,怎么办?...

    电脑开机后只显示桌面背景,图标没有,鼠标也没有反应,怎么办?以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 电脑开机后只 ...

  6. php利用表格敬将所选择的数据显示出来,单元格下拉筛选设置/Excel对筛选后的单元格进行下拉填充...

    EXCEL里怎样让一个单元格能有下拉菜单? 要设置下拉菜单的单元格(或格区)----数据---有效---"允许"中选择"序"---"来源"中 ...

  7. pdfpcell 怎么设置单元格大小_word怎么设置单元格大小

    word中的单元格是可以改变的,以适应不同的数据长度.但是新手不会,怎么办?有简单易懂的方法吗?下面让学习啦小编为你带来excel设置单元格大小的方法吧,希望看完本教程的朋友都能学会并运用起来. wo ...

  8. java读取合并单元格_Java POI常用方法,读取单元格的值,设置单元格格式,合并单元格,获取已合并的单元格,导出至本地等...

    一.设置单元格格式. 设置单元格边框.单元格背景颜色.单元格对齐方式.单元格字体,设置自动换行. /** Description: 设置单元格格式. * @author : ys. * @date : ...

  9. html如何改变单元格底色,html如何设置单元格颜色

    在html中,可以使用bgcolor属性设置单元格颜色,只需要在指定td标签中添加"bgcolor="颜色值""样式即可.bgcolor属性规定文档的背景颜色, ...

  10. 在Excel里面,单元格里输入公式后只显示公式本身,不显示结果,怎么办

    这种情况是对Excel进行了设置,设置的就是在单元格中只显示公式,不显示结果,解决的办法有两个: 1 用快捷键CTR+~ 2 点击"公式"选项卡,然后反选里面的"显示公式 ...

最新文章

  1. java之final
  2. struts2控制标签(一)选择标签,iterator标签,append标签
  3. 直播 | 清华大学关健:利用自监督学习的开放端故事生成评价方法
  4. 基础正则表达式介绍与练习
  5. 如何成为一个技术“牛人”
  6. c语言int超出范围溢出处理_整数溢出是怎么回事?Python和Numpy的整数为何不一样?...
  7. SQL Server datetime数据类型设计与优化误区
  8. 软件持续集成(CI)、持续交付(CD)和持续部署(CD)
  9. java基础语法day03
  10. spring mvc 学习 转载
  11. J-link J-flash 工程配置及下载
  12. 螺杆式、离心式、活塞式冷水机组及品牌
  13. 希捷2t服务器硬盘是什么盘,希捷酷鱼2T 3.5寸硬盘晒单以及小白安装应该避免的坑...
  14. 数理统计复习笔记七——列联表的独立性检验
  15. h5做app和原生app有什么区别?
  16. pyqt5 失焦 监听无操作 定时器
  17. 提高数据分析思维能力的三大方法
  18. 华为电脑Linux进pe,华为 matebook X Pro怎样用PE重装系统win10
  19. libusb ubuntu
  20. 坚鹏:苏州银行《银行数字化运营之行动篇》课程培训圆满结束

热门文章

  1. 数据库已关闭。请指定主机身份证明以访问数据库重新启动和诊断工具
  2. UIActivityIndicatorView活动指示器(菊花)
  3. 3ds max 2012 VRay 2.0-3ds max 从入门到精通-元旦场景材质设置
  4. 【OpenCV学习笔记】【函数学习】十七(imread()函数)
  5. 【第三方软件】利用WIN8系统自带的绘图软件获取图像信息(位置和颜色信息)
  6. 魔方机器人之上位机编程-------- 最无厘头错误(空格)
  7. 从零基础入门Tensorflow2.0 ----六、30 kaggle 10 monkeys 基础模型搭建与训练
  8. [vs2015 + AE]建立窗体应用程序的简单实验
  9. 向量间的距离和范数到线性空间、赋范空间、內积空间
  10. android 权限管理详解,EasyPermissions源码浅析