使用TableView自带的多选功能

编辑tableView 多选删除 全选删除 修改系统默认删除图片 写到了tableView的多选删除 全选 删除 取消 修改系统删除左侧圆圈 阅读详情

一、简单实现

1.设置tableView属性

self.tableView.allowsMultipleSelectionDuringEditing = YES; 

2.然后在编辑按钮显示tableView编辑状态

[self.tableView setEditing:YES animated:YES]; 

3.查看被选中cell的indexPath数组

NSArray *indexs = self.tableView.indexPathsForSelectedRows;

二、实战使用

功能要求:

1.点击多选按钮,进入多选模式

2.满足条件的才会出现多选项(部分cell多选)

3.多选状态下,选中和取消都要获取(实时计算选中cell中某个值的总和,以及选中数量)

实现:

1.简单方法无法实现部分多选,所以用另一种方法进入编辑模式

不需要设置

self.tableView.allowsMultipleSelectionDuringEditing = YES; 

实现两个代理方法

- (UITableViewCellEditingStyle)tableView:(UITableView *)tableView editingStyleForRowAtIndexPath:(NSIndexPath *)indexPath{
    if (indexPath.row < 5) {
        return UITableViewCellEditingStyleDelete | UITableViewCellEditingStyleInsert;
    }else{
        return UITableViewCellEditingStyleNone;
    }
}

ps:row<5 的显示系统自带的多选图标,否则不显示

 

- (BOOL)tableView:(UITableView *)tableView shouldIndentWhileEditingRowAtIndexPath:(NSIndexPath *)indexPath {
    if (indexPath.row < 5) {
        return YES;
    } else {
        return NO;
    }
}

ps :row<5 的会有cell向右移动,出现多选按钮的动作,否则没有动作,不会出现多选按钮

 

2.在选中cell的代理方法中,如果在编辑状态则处理选中事件,否则跳转其他页面

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath{
    // 编辑状态返回
    if (tableView.isEditing) {
        NSArray *indexs = tableView.indexPathsForSelectedRows;
        for (NSIndexPath *index in indexs) {
            // 可以取到所有选中cell的index
        }
        return;
    }
   // 正常cell点击动作
}

3、编辑状态如果取消选择的话不会进入上面方法,需要单独处理取消事件

- (void)tableView:(UITableView *)tableView didDeselectRowAtIndexPath:(NSIndexPath *)indexPath{
     NSLog(@"取消 - %ld",indexPath.row);
}

 

三、其他设置

 

1、自带按钮颜色设置

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{
    // ...
     directCell.tintColor = MainTone;
   // ...
}

2.判断是否在编辑状态(可用于编辑状态 是/否 切换),返回BOOL值

tableView.isEditing

3.自定义多选按钮(cell中实现)

-(void)layoutSubviews
{
    for (UIControl *control in self.subviews){
        if ([control isMemberOfClass:NSClassFromString(@"UITableViewCellEditControl")]){
            for (UIView *v in control.subviews)
            {
                if ([v isKindOfClass: [UIImageView class]]) {
                    UIImageView *img=(UIImageView *)v;
                    if (self.selected) {
                        img.image=[UIImage imageNamed:@"xuanzhong_icon"];
                    }else
                    {
                        img.image=[UIImage imageNamed:@"weixuanzhong_icon"];
                    }
                }
            }
        }
    }
    [super layoutSubviews];
}
//适配第一次图片为空的情况
- (void)setEditing:(BOOL)editing animated:(BOOL)animated
{
    [super setEditing:editing animated:animated];
    for (UIControl *control in self.subviews){
        if ([control isMemberOfClass:NSClassFromString(@"UITableViewCellEditControl")]){
            for (UIView *v in control.subviews)
            {
                if ([v isKindOfClass: [UIImageView class]]) {
                    UIImageView *img=(UIImageView *)v;
                    if (!self.selected) {
                        img.image=[UIImage imageNamed:@"weixuanzhong_icon"];
                    }
                }
            }
        }
    }
}

4.取消选择

[tableView deselectRowAtIndexPath:indexPath animated:YES];

 

四、坑

 

千万不要设置

cell.selectionStyle = UITableViewCellSelectionStyleNone;

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

使用Python的PyQt库进行GUI应用程序开发时,QTableView是一个常用的控件,用于显示和编辑表格数据 通过以上的代码示例,我们演示了如何使用PyQt的QTableView控件创建一个简单的表格视图,并添加示例数据。在这个类中,我们可以设置表格的外观和行为,以及处理与表格相关的事件。在类的初始化方法中,我们首先设置了表格的外观和行为,例如设置交替行颜色、选择行为和选择模式。现在,我们可以使用这个自定义的表格视图类来创建一个窗口,并将表格视图添加到窗口中。对象作为表格的数据模型,并将其设置为表格视图的模型。在类的初始化方法中,我们设置了窗口的标题,并创建了一个。在类的初始化方法中,我们创建了一个。 阅读详情

相关推荐

使用STM输出互补SPWM波(三相各差120°)

使用STM32输出SPWM波形(三相各差120°)

hello011102的博客 7373

UITableView编辑模式

UITableView除了常规的选择模式(selection mode)外还有一个编辑模式(editing mode),在编辑模式中可实现删除,插入,多选,重排序等。 一.进入编辑模式 通过直接设置UITableView的editing属性或向其发送setEditing:animated:消息,可将其置于编辑模式。 self.tableview.editing = YES; [se

cwd2012的专栏 544

低功耗和UPF介绍

参考[UPF]低功耗(Low Power Design)and UPF介紹

青春易逝,愿不负昭华,期待梦与远方 1万+

python tkinter treeview 表格全选、鼠标拖拽选中表格

在网上有很多tkinter相关的教学,也有很多treeview相关方法的介绍,但是treeview表格选中相关的介绍比较少,这里分享一下个人使用过程中的经验。与选中相关有两个函数,一个是selection,一个是selection_set。可以用selection函数获取集合,包含了所有选中的单元的iid。在treeview中,选中单位可以用selection_set函数设定,这个函数的对象是treeview类,方法的参数是目标的iid。

Rjj125的博客 2142

AD2S1210与DSP28335 SPI通信中的GPIO配置陷阱与解决

本文深入剖析了AD2S1210与DSP28335进行SPI通信时,因GPIO输入限定配置不当导致数据整体右移的典型问题。文章指出,错误地将MISO引脚配置为带采样周期的同步模式是根本原因,并提供了将输入选择限制正确设置为异步模式的解决方案。同时,总结了不同应用场景下GPIO输入限定的配置原则,为高速同步通信的稳定实现提供了关键指导。

weixin_29163857的博客 146

告别上位机!用MCGS触摸屏+FTP服务器,5分钟搞定工控机文件自动同步

本文介绍了一种工业自动化领域的高效解决方案,通过MCGS触摸屏结合FTP服务器实现工控机文件的自动同步,无需开发上位机软件。该方案特别适用于图像采集、参数同步、数据备份等场景,具有成本低、可靠性高、维护简便等优势。详细配置指南和实战案例帮助用户快速实现零代码文件同步。

weixin_30872499的博客 559

python tableview添加内容_Swift - 给TableView添加编辑功能(删除,插入)

1,下面的样例是给表格UITableView添加编辑功能:(1)给表格添加长按功能,长按后表格进入编辑状态(2)在编辑状态下,第一个分组处于删除状态,第二个分组处于插入状态(3)点击删除图标,删除对应条目(4)点击添加图标,插入一条新数据5819d62098010.pngimport UIKitclass ViewController: UIViewController ,UITableViewD...

weixin_39644952的博客 621

Mac上MySQL出现secure-file-priv为null

在使用MySQL导入导出文件时出现了错误,原因是没有配置secure-file-priv。 我的MySQL版本是8.0.13,使用如下命令查看secure-file-priv。 结果发现secure-file-priv为空,此时需要为它配置一个文件夹。 解决方案: 1)到MySQL的安装目录中去,Mac中是的是 /usr/local/mysql/support-files,该目录下有一...

zhangvalue的博客 5883

Python tkinter 自定义tabview

ttk中虽然添加了Notebook,但其功能过于简单,无法支持双击创建选项卡,删除选项卡等功能,于是自定义了tabview,有需要的朋友,可以参考在tkinter中自定义view的方法,自定义自己的view 源码地址 如果觉得有用,请不要吝啬一颗小星星 示例 import tkinter as tk from tkinter import messagebox from tabview i...

编程之路的专栏 1万+

STM32F411CEU6实战:用W25Q64存储多张图片,在240x240 LCD上轮播显示(附源码)

本文详细介绍了如何使用STM32F411CEU6通过SPI接口管理W25Q64 Flash中的多张图片,并在240x240 LCD上实现平滑轮播显示。内容涵盖硬件配置、图片存储方案设计、轮播系统实现及性能优化技巧,特别针对SPI传输优化和多图存储管理提供了实用解决方案。附源码,适合嵌入式开发者参考。

weixin_32025789的博客 308

llama-factory微调qwen2.5-vl

使用llama-factory完成qwen2.5-vl微调

qq_44908396的博客 2932

iOS tableView的单选与多选

iOS tableView的单选与多选思路:主要代码: 思路: 单选:点击cell,选中当前的,取消上一次选中的(该文章无此需求,单选后直接携带数据返回上一页,所以先不写这块代码) 多选:创建array,点击cell,若array中无当前cell的数据,则将该数据存到array中,若array中有当前cell的数据,则移除该数据。 主要代码: -(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSI

LiangYuan优快云的博客 966

ISP算法:自动白平衡(AWB)

1. 为什么要做白平衡? 人类视觉系统具有颜色恒常性特点,一次人类对物体观察不受光源影响。但是Sensor在不同光线下,物体呈现的颜色不同,在晴朗天空下会偏蓝,在烛光下会偏红。如图: 2.什么是自动白平衡? 为了消除光源对于图像传感器成像的影响,模拟人类视觉系统的颜色恒常性。保证在任何场景下看到的白色是真正的白色。 3. 如何做自动白平衡? 只要乘以一个对角矩阵,便可以进行白平衡...

a200800170331的专栏 1万+

Swift - tableView的单元格多选功能的实现(获取多选值、多选删除)

有时候在我们应用中需要用到表格(tableView)的多选功能。其实 tableView 已自带了多种多选功能,不用借助第三方组件也可以实现。下面分别进行介绍。 方法1,自定义一个数组保存选中项的索引(非编辑状态) (1)我们先定义一个数组,表格在非编辑状态时,点击某个单元格便将其索引添加到这个数组中。同时将单元格尾部打勾表示选中状态。再次点击原来选中的单元格,则取消选中状

mo_xiao_mo的博客 6021

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

tableview 多选删除

ISO TableView 多选删除,方便做项目用

sammyieveo的专栏 1033

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

同一个tableview实现多选单选删除

大多初学者对tableview实现删除,点击cell是都能实现的,但对于多选,单选却不是那么理解。。写了一个demo可供参考(不当之处请及时指出)1,在.h文件中声明一个变量type,用于区分进入当前页面是多选,单选还是删除#import <UIKit/UIKit.h>@interface TableView_chooseViewController : UIViewController @prop

Secret_Frist的专栏 857

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

iOS中tableview实现单选和多选

单选: @interface dataModel : NSObject @property (nonatomic, copy) NSString *title; @property (nonatomic, assign,getter=isSelected) BOOL selected; @end @implementation dataModel @end @interface customT

u012409247的博客 1436

TableView实现多选的方法

正如现在许多app上许多多选功能,多选删除,多选添加等等。我以tableView为载体,表现一下这些功能做法的思路。知识在于活学活用,希望你能有所感悟。从原理去理解。 一,先看一个简单的功能需求。 像上面这么种需求,只需要利用tableView自带的编辑模式就可以实现了,废话不多说,直接上代码。 注意: 1,tableView是从ib中拖进去的 2...

730

JavaFx之TableView表格操作----增删改及行多选

最近因项目开发需要,需要开发一个小工具对项目设备进行管理,JavaFx作为java桌面程序开发的一个利器,成为首选。 IDEA集成开发工具为我们提供开发JavaFx项目的环境,支持可视化编程,布局支持拖拽,这一点和android开发很类似。 JavaFX中提供了一些类让我们更方便的操作表格,最重要的类有TableView、TableColumn和TableCell。本文demo使...

IT熊的专栏 1万+

多选删除和tableView折叠

多选删除和tableView的折叠是昨天没事的时候练习了一下,然后里面有些地方是需要注意的,来记录下,防止自己以后忘了 - -多选删除先说下多选删除,在这里的思路就是让tableView进入到编辑状态,同时注意返回编辑类型时,返回删除和插入。然后用一个可变数组记录所选择的cell的indexPath,之后删除即可。下面贴一下代码说明下,主讲思路和注意的点。 在这里返回tableView的编辑类型,这

Tonyshng的博客 557

swift 选中长按项_Swift - tableView的单元格多选功能的实现(获取多选值、多选删除)...

有时候在我们应用中需要用到表格(tableView)的多选功能。其实 tableView已自带了多种多选功能,不用借助第三方组件也可以实现。下面分别进行介绍。(本文代码已升级至 Swift3)方法1,自定义一个数组保存选中项的索引(非编辑状态)(1)我们先定义一个数组,表格在非编辑状态时,点击某个单元格便将其索引添加到这个数组中。同时将单元格尾部打勾表示选中状态。再次点击原来选中的单元格,则取消选...

weixin_39531229的博客 793

tableview某一个section实现多选

viewcontroller.m #import "ViewController.h" #import "SectionOneCell.h" #import "SectionTwoCell.h" @interface ViewController () @property (nonatomic, assign) NSInteger currentEditingStyle; @prope

u012737100的专栏 1476

关于tableview的多选问题

声明下,虽然说的是原创,但是所有的方法都是谷歌so

IOS学习杂技 1825

自定义tableView全选、单选、多选删除Cell

继上一篇tableView编辑状态下的全选删除。 上一篇说的是tableView系统自带的删除(系统的全选删除 本人研究了好久 始终没有研究出来,也希望大家如果用的是系统的allowsMultipleSelectionDuringEditing这种删除 实现了全选删除,本人也求一份小demo),而这篇里主要是自定义的全选、单选、多选删除。先上效果图 起初自己写遇

qq_26241605的专栏 706

JavaFX之TableView的SelectionMode

SelectionMode table默认是只能选着一行的,如果想选着多行,设置SelectionMode,此时可以对选中的多个进行监听。 [java]view plaincopy ListChangeListener<Person>indicesListener=newListChangeLi...

angji2879的博客 1044

iOS TableView多选删除理解2

iOS 实现tableView多选删除,纯代码,可以复用

sammyieveo的专栏 1071
上一篇: 使用GCD-dispatch_semaphore同步下载请求
下一篇: 上划渐变导航条颜色
RockyFung
博客等级 码龄11年 3粉丝 25原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值