UIcollectionViewCell(UItableviewcell)长按删除操作

简介: 功能简单,陷阱不少: 主要涉及两个功能: 1、长按手势:UILongPressGestureRecognizer 2、cell自带的删除操作:deleteItemsAtIndexPaths首先为cell添加长按手势:UILongPressGestureRecognizer* longgs=[[UILongPressGestureRecognizer all

功能简单,陷阱不少:
主要涉及两个功能:
1、长按手势:UILongPressGestureRecognizer
2、cell自带的删除操作:deleteItemsAtIndexPaths

首先为cell添加长按手势:

UILongPressGestureRecognizer* longgs=[[UILongPressGestureRecognizer alloc]initWithTarget:self action:@selector(longpress:)];
    [cell addGestureRecognizer:longgs];//为cell添加手势
    longgs.minimumPressDuration=1.0;//定义长按识别时长
    longgs.view.tag=indexPath.row;//将手势和cell的序号绑定
    return  cell;

此处注意 [cell addGestureRecognizer:longgs];和longgs.view.tag=indexPath.row;的位置顺序,不能颠倒,要先绑定手势,再赋值tag,因为longs.view中的view实际上就是手势添加到的视图,如果还没有绑定手势,view实际上是没有的。

然后就是调用的删除功能的函数:

-(void)longpress:(UILongPressGestureRecognizer*)ges{
    if(ges.state==UIGestureRecognizerStateBegan){
       //获取目标cell 
       NSInteger row=ges.view.tag;
        //删除操作
        if(self.cellcount.count>1){
        NSIndexPath *index =[NSIndexPath indexPathForRow:row inSection:0];
        NSArray* deletearr=@[index];
            [self.colview deleteItemsAtIndexPaths:deletearr];
        }else{
            [self.colview reloadData];

        }
    }
}

这里要注意两点:
1、要对state进行判定,如果没判定会出现两次操作。
2、自带的cell删除操作deleteItemsAtIndexPaths在只剩最后一个cell调用时会出现奔溃,所以这里要进行判定,当为最后一个时,直接reloadData。(其实都用reloadData都行,不过调用deleteItemsAtIndexPaths会有一个剩余cell的移动动画)

相关文章
|
存储 关系型数据库 MySQL
MySQL中的索引及怎么使用
综上所述,MySQL索引的正确使用是数据库性能调优的关键一环。通过合理设计索引结构,结合业务需求和数据特性,可以有效提升数据库查询响应速度,降低系统资源消耗,从而确保应用的高效运行。
334 1
|
前端开发
ElementPlus卡片如何能够一行呈四,黑马UI前端布局视频资料,element样式具体的细节无法修改,F12找到那个位置,可能在其他组件写了错误,找到那个位置,围绕着位置解决问题最快了,卡片下边
ElementPlus卡片如何能够一行呈四,黑马UI前端布局视频资料,element样式具体的细节无法修改,F12找到那个位置,可能在其他组件写了错误,找到那个位置,围绕着位置解决问题最快了,卡片下边
|
安全 Java Linux
蓝易云 - ES搭建详细指南+常见错误解决方法
以上是Elasticsearch的搭建步骤以及处理常见错误的方法。在实际使用过程中,可能会遇到更多的问题,这时候你需要根据错误信息进行相应的解决。
275 0
|
JSON 数据格式 iOS开发
APNS IOS 消息推送JSON格式介绍
在开发向苹果Apns推送消息服务功能,我们需要根据Apns接受的数据格式进行推送。下面积累了我在进行apns推送时候总结的 apns服务接受的Json数据格式 示例 1: 以下负载包含哦一个简单的 aps 字典。
3814 0
|
JavaScript
dyld: Library not loaded:解决办法
dyld: Library not loaded:解决办法
987 1
|
程序员 开发工具 iOS开发
UIVisualEffectView 毛玻璃效果
UIVisualEffectView 毛玻璃效果
1201 0
|
iOS开发 UED
iOS开发 -UISearchController的使用和改善方法
iOS开发 -UISearchController的使用和改善方法
423 0
iOS开发 -UISearchController的使用和改善方法
|
JavaScript 前端开发 算法
前端内存泄漏详解(一)
前端内存泄漏详解(一)
658 0
|
文字识别 数据安全/隐私保护
大漠插件7.2302
大漠插件是一款文字图片识别的编程插件.能够被大多主流编语言调用
1363 0
大漠插件7.2302
|
存储 编解码 缓存
Opus从入门到精通(三)手撸一个Opus编码程序
PCM数据大小怎么计算呢?根据采样率采样格式,声道数计算.根据前面文章音视频之音频知识入门介绍:PCM文件大小 = 采样率 * 采样格式 * 声道数 * 录制时长采样率即一秒多少采样,采样格式指一个采用占多少字节,通常一个采用使用一个字节或者两个字节,所以采样率*采样格式计算出一秒钟一个声道PCM多少字节,乘以声道数,算出一秒钟PCM大小,再乘以时长就可以计算出PCM文件大小.
1326 0