ios 关于UITableView UITableViewCellAccessoryCheckmark 混乱的问题

分组表UITableViewCellAccessoryCheckmark的唯一性 分组表中UITableViewCellAccessoryCheckmark的唯一性 立即下载

大家都知道UITableViewCellAccessoryCheckmark是让UITableView每条记录后面打上对勾,如下图所示


并且可以多选。但会有一个问题,上下滚动的时候,会发现对号错乱的情况。究其原因应该是cell重用的问题。

UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:cellStr];
    if (cell == nil) {
        cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:cellStr];
    }

可在单击记录的方法里记录下选择的记录:

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {//table单击事件
    UITableViewCell *cell = [tableView cellForRowAtIndexPath: indexPath];
    NSString *str=cell.textLabel.text;
    NSDictionary *dict=[self getOneDictByName:str];
    if([self isExistsByName:str theArray:selectedData]){
        [self removeOneFromArrayByName:str theArray:selectedData];
    }else{
        [selectedData addObject:dict];
    }
    [tableView reloadRowsAtIndexPaths:[NSArray arrayWithObject:indexPath] withRowAnimation:UITableViewRowAnimationAutomatic];

}

代码中的selectedData是一个NSMutableArray。

然后在cellForRowAtIndexPath方法里限定cell的accessoryType值。

-(UITableViewCell*)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{
    static NSString *cellStr= @"cell";
    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:cellStr];
    if (cell == nil) {
        cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:cellStr];
    }
    NSArray *keys=[tempResult allKeys];
    NSArray *dicts= [tempResult valueForKey:[keys objectAtIndex:indexPath.section]];
    NSDictionary *temp=[dicts objectAtIndex:indexPath.row];
    cell.textLabel.text=[temp valueForKey:@"name"];
    if([selectedData containsObject:temp]){
        cell.accessoryType=UITableViewCellAccessoryCheckmark;
    }else{
        cell.accessoryType=UITableViewCellAccessoryNone;
    }
    return cell;
}

上面的if  else  要完整。

其实思想就是MVC,视图只是用来展示,到底展示什么取决于model;


ARTIX-7 GTP 3G-SDI 工程构建与调试实战 本文详细介绍了基于ARTIX-7 FPGA和GTP收发器的3G-SDI工程构建与调试实战。从基础概念解析到Vivado工程创建、GTP IP核配置、SDI IP核集成,再到系统集成与时钟域处理,提供了全面的技术指导。文章还分享了调试技巧、常见问题排查方法以及性能验证步骤,帮助开发者快速掌握3G-SDI视频传输技术的实现与优化。 阅读详情

相关推荐

AIGC实战指南:从提示词到工作流,掌握AI内容生成核心技能

人工智能生成内容(AIGC)作为当前AI技术的重要应用领域,其核心原理基于大语言模型(LLM)对海量数据的学习与模式识别。这项技术的价值在于将复杂的创作过程自动化,显著提升内容生产效率与创意实现的多样性。在实际应用中,AIGC已广泛渗透至文本创作、图像设计、音频合成及视频生成等多个场景,成为数字内容生产的重要工具。要高效运用AIGC,关键在于掌握提示词工程与模型微调等核心技能。例如,通过结构化提示词设计,可以精确引导模型生成符合预期的专业周报;而选择合适的微调模型,则能大幅提升图像生成的风格控制力与输出质量

weixin_26808439的博客 373

iOS——UITableViewCell

一、UITableViewCell  1. 基本概念 ①UITableView 对象的每一个表格行都是一个独立的视图,这些视图都是 UITableViewCell 对象 ②UITableViewCell 对象有一个子视图——contentView 属性。该属性视图包含了其他的子视图并且这些子视图构成了 UITableViewCell 对象的主要外观;此外,UITableViewCell 对象

透心凉的博客 670

《Ventoy 制作系统安装 U 盘的具体步骤》

然后您可以在电脑的磁盘管理中对 U 盘进行快速格式化,选择 FAT32 或 NTFS 文件系统。至此,Ventoy 系统安装 U 盘就制作完成了。您可以在需要安装系统的电脑上,从 U 盘启动,然后选择相应的系统镜像进行安装。安装完成后,将您需要的操作系统镜像文件(如 Windows、Linux 等的 ISO 格式镜像)复制到 U 盘的根目录。在安装程序中,选择您插入的 U 盘设备,确保选择正确,以免误操作。2. 确认选择的 U 盘盘符正确,防止误操作导致其他磁盘数据丢失。点击“安装”按钮,等待安装完成。

jiyiwangluokeji的博客 2664

表格单选实现UITableViewCellAccessoryCheckmark

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath { UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:ID forIndexPath:i

沐阳的博客 2599

Notepad++ XML Tools插件:手把手教你格式化混乱XML与一键语法检查(保姆级教程)

本文详细介绍了如何使用Notepad++的XML Tools插件格式化混乱的XML文件并进行一键语法检查。通过插件安装、格式化实战和语法排错的完整流程,帮助开发者高效处理XML数据,提升API通信和数据存储的工作效率。特别适合需要快速验证和整理XML配置的开发人员。

weixin_42619742的博客 322

项目方案:社会视频资源整合接入汇聚系统解决方案(五)

视频监控接入和视频汇聚平台,形成整合平台,平台服务层包括编码设备、存储设备、解码设备等的接入服务,提供基础视频服务、传输服务、存储服务、控制服务及事件服务。两种不同的接入方式:监控设备接入,是指接入社会单位视频监控系统的DVR(数字硬盘录像机)、DVS和IPC、DVR/NVR、CVR等设备;平台对接,是指对接接入社会单位数字视频监控平台。AS-VAG视频监控接入网关支持onvif、国标等接入,也支持多种SDK接入方式,包括国产的主流品牌支持海康、大华、宇视、华为等SDK,国际品牌支持松下和axis等SDK。

weixin_70208651的博客 2463

【UITableView和UITableViewCell的常见属性 Objective-C语言】

【UITableView和UITableViewCell的常见属性 Objective-C语言】

madoca的博客 967

Verilog流水线CPU设计(超详细)

快把这一篇给更了

Ace Cheney的博客 7万+

ios表视图之UITableViewCellAccessoryCheckmark单选、多选状态保存

表视图界面跳转,单元格选中状态的保存 多选 在cellForRow中: UITableViewCell *Cell = [tableView cellForRowAtIndexPath:indexPath]; Cell.accessoryType = [[NSUserDefault standardUserDefaults]objectForKey:indexPat...

weixin_30699443的博客 180

北京大学MuMo多模态肿瘤分类模型复现与迁移学习

本项目复现了北京大学MuMo多模态肿瘤分类模型,并针对特定医学影像数据集进行迁移学习。MuMo模型通过整合CT、MRI、PET等多模态医学影像数据,显著提升了肿瘤分类准确性。项目内容包括环境配置(Python 3.8+、PyTorch 1.9+)、数据预处理(DICOM/NIfTI格式处理、强度归一化)、多模态数据集类实现,以及训练验证测试集划分。关键特点是采用MONAI医学影像处理库,实现三维医学影像的标准化预处理流程,并支持多种模态数据的并行加载与联合训练,为后续模型复现和迁移学习奠定基础。

max500600的博客 1240

PCL RANSAC拟合直线并插值

空间直线线性插值的原理与实现方法。

点云侠的博客 136

UITableViewCell 中的单选控制

UITableViewCell 中的单选控制 UITableViewCellAccessoryCheckmark 需要注意的是这个函数,用来设置cell的UITableViewCellAccessoryType 属性--这里用到UITableViewCellAccessoryCheckmark - (UITableViewCellAccessoryType)tableView:(U

ZhouJoLoker的专栏 2252

系统安全性评估 (SSA) 详细解析

系统安全性评估(SSA)是一种自下而上的验证过程,目的是确保系统设计中的每个功能、子系统、硬件和软件的实现,符合早期通过 FHA 和 PSSA 设定的安全性需求。它通过对已实现的系统进行系统性综合评价,检验各项设计和安装是否符合预期的安全性目标,最终支持飞机的适航认证。飞行控制系统是飞机安全性设计的核心子系统之一,负责控制飞机的姿态和方向。为了确保飞行控制系统能够在各种飞行条件下保持安全运行,SSA 被用于验证该系统的设计是否满足 FHA 中设定的安全性目标。

qq_41854911的博客 1651

改变UITableViewCellAccessoryCheckmark(UITableView Cell后面的对勾)的颜色

改变UITableViewCellAccessoryCheckmark(UITableView Cell后面的对勾)的颜色

soindy 4240

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

iOS UITableView cell accessoryType single checkmark

in .h file: NSIndexPath *checkedIndexPath; in .m file: - (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath { [tableView deselectRowAtIndexPath:index

xwren362922604的专栏 1437

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

tableView 中的单选控制 UITableViewCellAccessoryCheckmark

需要注意的是这个函数,用来设置cell的UITableViewCellAccessoryType 属性--这里用到UITableViewCellAccessoryCheckmark - (UITableViewCellAccessoryType)tableView:(UITableView *)tableView accessoryTypeForRowWithIndexPath:(NSInd

Alex1226的专栏 647

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

UITableView中确保UITableViewCellAccessoryCheckmark的唯一性

今天在做UITableView中遇到一个问题,先描述下问题是这样的:我有一个选项设置算路的模式,这个算路的模式有至少4中选择,每次算路的时候只能从中选择一种算路模式,哪一种算路模式被选中的话,我会在后面打上对号,那么我用到了UITableView的AccessoryType属性,设置为UITableViewCellAccessoryCheckmark就是对号,但是当我点不同的cell的时候,我发现

1218

修改tableViewCell的默认checkmark颜色 并实现其单选功能

蓝色是tableViewCell的默认前景色(tintColor),所以我们设置cell.tintColor = [UIColor redColor];就可以改前景色为红色了,同样那个accessoryCheckmark的颜色就变成红色了。  首先我们公开一个属性  @property(nonatomic,strong)NSIndexPath *lastPath; 主要是用来

Liotta 3060

IOS开发之TableView替换默认的checkmark为自定义图像

I'd like to replace the default checkmark image that is shown when a UITableViewCell's accessory is set to: UITableViewCellAccessoryCheckmark. So I'd still like to write: [cell setAccessoryType:UITableViewCellAccessoryCheckmark]; But I'd like my own imag

程序猿GTC 4747

UITableViewCell 中的单选控制 UITableViewCellAccessoryCheckmark

需要注意的是这个函数,用来设置cell的UITableViewCellAccessoryType 属性--这里用到UITableViewCellAccessoryCheckmark - (UITableViewCellAccessoryType)tableView:(UITableView *)tableView accessoryTypeForRowWithIndexPath:(N

qq_33051421的博客 321

自定义 UITableViewCell 的 accessory 样式

对于 UITableViewCell 而言,其 accessoryType属性有4种取值:UITableViewCellAccessoryNone,UITableViewCellAccessoryDisclosureIndicator,UITableViewCellAccessoryDetailDisclosureButton,UITableViewCellAccessoryCheckmark分别

kmyhy的专栏 3万+

iOS-UIAccessibility旁白适配

近期在处理App适配VoiceOver(旁白)功能,简单的系统控件苹果都能很好的识别,但在复杂界面处理遇到了一些问题,VoiceOver问题可参考的资料不多,把自己踩过的坑记录如下。 首先介绍下 旁白常用的手势: 轻点:选择并朗读项目。 左右轻扫:选择下一项或上一项。 双指轻点三下:打开“项目选取器”。 三指上下轻扫:一次滚动一页。 三指左右轻扫:前往下一页或上一页(例如,在主屏幕上中)。 四指...

u010707262的博客 2493

UITableViewCell设置 checkmark的问题

之前设置UITableViewCell的checkMark的属性,有20个cell 选择其中的一个进行设置checkmark ,但是一直无法设置成功,之前采用的方式是通过indexPath来标记 将上一个indexPath设置为oldIndexPath, 但是无法标记成功,后面把上一个 UITableViewCell 来作为标记,可以解决。 代码如下   [tableView des...

weixin_33910460的博客 153

ios开发笔记之《uitableviewcell选中打勾》

需要实现这么一个需求: 单元格选中后,打勾。再选其他,之前的勾取消,新的打勾。 代码如下(不加代码高亮了吧): - (NSIndexPath *)tableView:(UITableView *)tableView willSelectRowAtIndexPath:(NSIndexPath *)indexPath { NSIndexPath *oldIndex = [tab

追寻者 3465

点击Cell的时候 出现一个 小对勾的( 确定UITableViewCell AccessoryCheckmark唯一性)

a)点击背景会变蓝色 - (UITableViewCellAccessoryType)tableView:(UITableView*)tableViewaccessoryTypeForRowWithIndexPath:(NSIndexPath *)indexPath {     if(indexPath.row==currentIndex){        returnUIT

yesexiaoyang的博客 389
上一篇: ios 调用打电话、短信等功能
下一篇: ios 内存管理之auto release
yesjava
博客等级 码龄19年 69粉丝 153原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值