首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

在iOS11中快速连续滑动删除UITableView的单元格会崩溃

在iOS11中,快速连续滑动删除UITableView的单元格可能会导致应用崩溃。这是由于在快速滑动过程中,UITableView会尝试同时删除多个单元格,而这可能会导致数据源和界面的不一致,从而引发崩溃。

为了解决这个问题,可以采取以下几种方法:

  1. 限制滑动速度:可以通过自定义UITableViewDelegate的willBeginEditingRowAt方法,在滑动开始时检测滑动速度,如果速度过快,则禁止编辑操作,从而避免崩溃。
  2. 异步处理删除操作:可以在删除单元格时,将删除操作放在一个异步队列中执行,以确保数据源和界面的一致性。可以使用GCD或者NSOperationQueue来实现异步处理。
  3. 添加数据源保护机制:可以在数据源中添加保护机制,确保在删除操作进行时,不会出现数据源被修改的情况。可以使用锁或者信号量等机制来实现数据源的保护。
  4. 使用第三方库:可以考虑使用一些第三方库来处理UITableView的删除操作,这些库通常会提供更加稳定和可靠的删除功能,避免崩溃问题的发生。

总结起来,解决在iOS11中快速连续滑动删除UITableView单元格导致崩溃的问题,可以通过限制滑动速度、异步处理删除操作、添加数据源保护机制或者使用第三方库等方法来解决。具体的实现方式可以根据具体的需求和场景进行选择。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

你可能需要为你的 APP 适配 iOS 11

本文介绍iOS11中在UI方面做了哪些更新,有些更新可以为用户提供更加完美的体验,但也有的可能会给目前的APP带来异常bug 前言 前几天发现在做的APP在 iOS11 系统上动画有异常,在其他系统的设备上都是正常的...在UIKit’s Bars中加入的新功能 WWDC通过iOS新增的文件管理App:Files开始介绍,在Files这个APP中能够看到iOS11中UIKit’s Bars的一些新特性:在浏览功能上的大标题视图...(向上滑动后标题会回到原来的UI效果)、横屏状态下tab上的文字和icon会变为左右排列。...UIScrollView and UITableView的新特性 Scroll Views 如果有一些文本位于UI滚动视图的内部,并包含在导航控制器中,现在一般navigationContollers会传入一个...cell,会直接执行删除操作,不用再点击删除按钮,这也是一个好玩的更新。

1.7K60
  • Ios常用第三方框架(二)

    HorizontalScrollCell - HorizontalScrollCell是一款使用方便的水平方向可滚动的单元格,适用于UICollectionView中实现水片方向滚动视图。 。...Atlas-iOS - 快速在iOS里集成聊天功能,类似开源版本的环信。Layer家开源了一套聊天app界面的解决方案.看起来很赞,很多蛮复杂的东西直接都帮封好了。...QuickRearrangeTableView - 基于 UITableView 的快速重排功能扩展子类。通过长按选定单元格然后滚动移动到指定位置。...MGSwipeTableCell - 另一个常见于很多应用中的UI组件,苹果应该考虑在标准的iOS SDK中加入一些类似的内容。Swipeable表格cell是这个pod的最佳描述,也是最好的。...MTMaterialDelete - 非常有趣的Material Design动画,动画删除表里面的单元格。

    7.7K60

    Swift - 给TableView添加编辑功能(删除,插入)

    [indexPath.row] print("str\(str)") } // 设置单元格的编辑的样式 func tableView(_ tableView: UITableView, editingStyleForRowAt...{ return "确认删除" } // 单元格编辑后的响应方法 func tableView(_ tableView: UITableView, commit editingStyle:...tableView.reloadData() } } 功能改进 (1)默认情况下所有单元格都无法进行滑动删除等编辑操作。...(2)长按表格进入编辑状态,所有单元格都可以进行删除操作。 (3)同时在编辑状态下,在下方会自动出现一个新增操作单元格。点击前面的加号,便会给数据集中添加一条新数据。 ?...{ return "确认删除" } // 单元格编辑后的响应方法 func tableView(_ tableView: UITableView, commit editingStyle:

    3K20

    底牌项目中的选择牌谱上传功能--深刻理解UITableView复用

    此界面的布局: 此界面由UITableView构成,根据日期的不同设置单元格,单元格内是一张张图片,在每张图片上添加了一个按钮用于选择图片。...问题: 在选中一张图片后会将该图片存储到一个数组中以便上传,可当再次点击按钮取消选中图片时却不知道该如何将该图片从数组中删除。...解决: 在Cell中制定协议设置代理,在选中图片的按钮点击事件中如果代理响应了协议中的方法则让代理执行该方法。关键:在该方法中要将图片的信息传递过去。...选择图片和反选图片的问题解决后又有了新的问题。 问题: 选中一张图片,然后滑动UITableView,这时发现之前选中的图片变成了没选中,如果是刷新和加载同样会出现这样的问题。...UITableView的复用可以节省内存空间,可如果不理解其本质地使用就会出现我所说的问题,有时还会出现同样的内容重复出现的问题(第一个单元格中的内容发生变化,后面的单元格复用第一个单元格,其上的内容也会和第一个单元格的内容相同

    1.1K10

    《iOS Human Interface Guidelines》——Table View表视图

    API NOTE 查看Table View Programming Guide for iOS和UITableView来学习更多关于在你的代码中定义表视图的内容。...在两种风格中,表行会在用户点击选中时简短地高亮。如果一行的选择导致导航到一个新的界面,选中的行会高亮并且伴随着新的界面滑动进来。...用户通过在连续的列表中选择条目来跟踪路径。扩展指示器告诉用户点击行的任何地方都会在新列表中显示子集信息。 显示概念上的分组信息。两种表视图风格都允许你通过信息章节间的页眉和页脚视图来提供上下文。...如果这有助于用户更好地理解你的app的工作方式,你可以创建一个标题来代替系统提供的删除标题。 尽可能地使用简洁的文本来避免截断。截断的单词和短语会让用户很难浏览和理解。...文本截断在所有表单元格风格中都是自动的,但是根据你使用的单元格风格和截断发生的位置会造成不同的问题。 不要将索引和显示在表右边界的表视图元素结合在一起。

    2.4K20

    DTCoreText的集成与使用目录一、相关资源二、DTCoreText的集成三、DTCoreText的使用四、可能遇到的错误五、参考链接

    //DTCoretText在解析Html的时候,如果遇到网络图片会插入一个占位符 //对于图片类型(DTImageTextAttachmentd)的占位符,我们使用DTLazyImageView来显示...DTAttributedTextView是支持滑动显示的富文本视图,在使用时计算富文本的Frame也就没那么必要了,一般我们都会指定它的Frame。其在这里的用法就不累述了。...,并更新单元格上的数据 //ZSDTCoreTextCell是自定义的继承于DTCoreTextCell的单元格 - (ZSDTCoreTextCell *)tableView:(UITableView...如果当前表视图在滑动就不执行刷新,因为滑动时候会自动调用表视图的刷新方法 - (void)reloadCurrentCell{ if (self.isScrolling) {...return; } //如果当前表视图没有在滑动,就手动刷新当前在屏幕显示的单元格 NSArray *indexPaths = [self.tableView indexPathsForVisibleRows

    4.9K90

    解决UITableView中Cell重用机制导致内容出错的方法总结

    UITableView中的cell可以有很多,一般会通过重用cell来达到节省内存的目 的:通过为每个cell指定一个重用标识符(reuseIdentifier),即指定了单元格的种类,当cell滚出屏幕时...,会将滚出屏幕的单元格放入 重用的queue中,当某个未在屏幕上的单元格要显示的时候,就从这个queue中取出单元格进行重用。...比如,当一个cell含有一个 UITextField的子类并被放在重用queue中以待重用,这时如果一个未包含任何子视图的cell要显示在屏幕上,就会取出并使用这个重用的 cell显示在无任何子视图的cell...,虽然可能会浪费一些空间。...cell的所有子视图 这个方法是通过删除重用的cell的所有子视图,从而得到一个没有特殊格式的cell,供其他cell重用。

    2.5K50

    埋点统计~~从UITableView数据曝光说起

    控件在iOS移动端承载这丰富的信息输出,用户在使用浏览中会留下丰富的数据采集信息 A用户会慢慢的逐条浏览呈现的产品 B用户往往会快速滑动进行浏览 C用户会快速的翻页进行浏览 上面的三种用户基本涵盖了这个...目前可以这么定义---当页面滑动结束或首次加载完成时呈现给用户的所有商品均算是曝光 UITableView中用户浏览中略过的商品条目 这个就有意思了,用户在快速浏览中可能会快速滑动翻页,更有甚者直接快速滑动之后让列表自己滑动...,UI在阻尼情况下会慢慢自动静止,那么这被用户快速划过忽略的就是商品条目就是产品中没有曝光的数据。...对于用户滑动过程中忽略掉的条目比较复杂--上滑 下滑 手指按着屏幕滑动 在讲解之前我们先要处理一个问题:怎么判断屏幕滑动的方向 在系统中我们根据给定的Pan手势的移动来判断 extension UIScrollView...采集结果 我们来分析一下这个结果是如何获取的 1 记录最底部的位置(需要完全展示)v0 2 滑动之后自由滑动需要超过一屏幕 3 结束滑动记录顶部位置v99+ 那么v0~v99+ 之间的即是快速滑动过程中没被用户认真浏览的数据

    1.4K32

    OC观察者模式之KVO的使用与思考

    ,比如tableview中数据发生变化进行刷新列表操作,监听 scrollView的contentOffset属性监听页面的滑动. 2.KVO的使用方法 KVO的使用可分为自动监听和手动监听。...5.KVO实现过程中的注意事项 iOS 10以下会有这些情况,iOS11不会出现这些情况,但是为了代码的严谨性,以及以防出现无法预知的错误,还是避开这些比较好。...1、添加观察者次数与remove次数不匹配导致程序崩溃 连续对同一属性添加观察者是可以的,但是也要保证在移除观察者的时候也要移除对应次,不然可能会引发崩溃(iOS11以上不会崩溃)。...2、移除不存在的观察者(iOS11以上不会崩溃) 当某个对象并没有添加观察者时,却执行了移除观察者的操作,也会导致程序崩溃,此处不附相关代码。...3、被观察者销毁时还存在观察者(iOS11以上不会崩溃) 这种情况常出现在复杂逻辑下,观察者先于被观察者销毁[9] 4、KVO 行为是同步的,并且发生与所观察的值发生变化的同样的线程上。

    1.5K30

    扒虫篇-Bug日志Ⅴ

    4.在iOS9系统的手机上使用SDWebImage不显示图片,在iOS10、iOS11手机上、模拟器上都是显示的 因为网络请求链接使用的是 https 所以info.plist中就没有设置App Transport...Security Settings 结果使用SDWebImage加载图片 在iOS10、iOS11手机上、模拟器上都是显示的,可是在 iOS9的手机上就是不显示,无奈再次在info.plist中就没有设置...5. iOS11上 MBProgressHUD 不显示 事情是这样的,iOS11之前的手机上点击提交按钮都会提示“XXXX不能为空”,可是在刚刚更新的iOS11的手机上,点击按钮的时候并没有提示,当时以为是按钮没有触发点击事件...原代码 新代码 可以看到,iOS11中应该是添加了新的一层 UIInterrectiveHightEffectWindow ,而且是隐藏起来的,所以加载上也是看不见的,误以为按钮没有响应。...拖进工程链接中就可以解决这个问题啦 9.拖进工程中的图片就是不显示 这个问题是在Xcode9中经常出现的问题 解决办法:把图片拖到 Images.xcassets 中即可加载显示啦。

    1.1K10

    iOS UITableView左滑操作功能的实现(iOS8-11)

    在2和3中,如果是需要适配iOS 11之前的版本,以上三个方法都需要实现。...4、上面1.2和1.3中实现的方法的区别 体验上的不同就是当左滑只有一个button时,iOS 11中可以一直左滑,滑到一定程度时,会执行点击按钮的操作,iOS 11之前的不会。...实现的思想是hook系统实现,但鉴于UITableView的view层级结构在iOS 11中有所改变,所以iOS8-10和iOS11的实现有所不同,以下分别给出。...考虑到代码的可复用性,自定义左滑操作的字体大小和颜色的代码不写在viewController中,而是写在UITableView和UITableViewCell的Category中,对外提供editActionTitleColor...由上图可知,左滑的操作按钮是在UITableView的子view,所以我们可以在UITableView的category中hook掉layoutSubviews方法,找到UISwipeActionPullView

    1.2K81

    一个多UITableview的左右滑动简单解决方案

    前言 本文源自实际开发中的需求,核心的要求有几个: 1、多个UITableview要支持左右滑动; 2、点击Tab也要有UITableview的滑动切换效果; 3、每个UITableview单独的下拉刷新和上拉加载...如果在页面左右滑动的同时,再进行上下滑动,就会触发UIScrollView的上下滑动,造成异常现象(UITableView上下滑动不再生效)。...为了方便调用,有时会通过tag去快速获取view。...但是实际开发中,在VC的viewDidLoad方法中将其设置为NO,并没有生效,UIScrollView依旧下滑了20pt。...总结 多UITableview的VC本身已经有上万行代码,散布在十几个Category里面。相对于老代码的迁移,这次新增一个左右滑动功能的代码简直是微不足道。

    2.8K71

    数据人必会的Excel|掌握32个Excel小技巧,成为效率达人(一)

    方法:选中开始单元格-按下Ctrl+Shift+方向键-实现快速选择至最边缘行或列。 ? 我们在来个视频,进行学习下这个快捷键操作! ?...技巧二:快速移动光标至边缘单元格 同样的面对大量数据,我们想要快速移动光标至边缘单元格也有相应的快捷键,Ctrl+方向键(上下左右),有了这个快捷键之后,我们就不需要滑动鼠标一行一行去找最末尾的单元格了...技巧八:快速选择区域 当提到快速选择连续区域时,你一定会想到直接通过鼠标进行框选,除了这个方法之外,我们也可以选中开始单元格,然后按住Shift,点击结束单元格,就选中起始单元格之间的所有数据了。...对于选中不连续的单元格,我们可以按住Ctrl,点击需要选中的单元格。 ? 话不多说,直接上视频! ?...技巧九:冻结首行 在数据量很大的情况下,我们上下滑动数据表格的时候,列名也会跟着滑动,对于我们阅读数据十分不便,所以这个时候我们需要冻结窗格。

    1.7K20
    领券