今天想实现一个简单的collectionView动画效果,查阅相关资料发现,实现 collectionView.performBatchUpdates()方法即可,于是掉坑里了。

文档: public func performBatchUpdates(updates: (() -> Void)?, completion: ((Bool) -> Void)?) // allows multiple insert/delete/reload/move calls to be animated simultaneously. Nestable.

根据文档的意思,我这边是做reload操作,发现刚好符合我的需求,于是撸起

  self.collectionView.performBatchUpdates({ () -> Void in

self.collectionView.reloadData()

}) { (finished) -> Void in

}

话说,一共就几行代码,so easy,我怎么没可能会错呢。。结果是:

 Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: 'Invalid update: invalid number of items in section 0.  The number of items contained in an existing section after the update (9) must be equal to the number of items contained in that section before the update (8), plus or minus the number of items inserted or deleted from that section (0 inserted, 0 deleted) and plus or minus the number of items moved into or out of that section (0 moved in, 0 moved out)

当时就不淡定了。。。怎么可能,哼。。。于是乎啊,我又运行几次,结果都是这么残忍。唉。。。都是泪啊,看看了文档,发现,另一个方法

public func reloadSections(sections: NSIndexSet)  哈哈,难道在这个block中不能用reloadData(),于是我都试了试reloadSectionS(),binggo,搞定

思索再三,发现原因可能是: 我在点击出发批量数据处理的时候,没有只能具体要操作的内容,所以报错了。。。。呜呜。。。可怜啊

另外tableView也有相应的简单效果

  beginUpdates() / endUpdates() 在此之间写响应的代码就行了. 官方文档上写的很明白,没事还是多看看文档吧。。哈哈。。。

ios 关于collectionView.performBatchUpdates()方法 --时时更新的更多相关文章

  1. iOS-提高iOS开发效率的方法和工具

    提高iOS开发效率的方法和工具 介绍 这篇文章主要是介绍一下我在iOS开发中使用到的一些可以提升开发效率的方法和工具. IDE 首先要说的肯定是IDE了,说到IDE,Xcode不能跑,当然你也可能同时 ...

  2. iOS UISearchController 的使用方法

    iOS UISearchController 的使用方法 UISearchController 让用户在 UISearchBar 上输入搜索关键词,展示搜索结果或者进行其他操作.UISearchCon ...

  3. H5移动端IOS/Android兼容性总结,持续更新中…

    H5移动端IOS/Android兼容性总结,持续更新中… 1. IOS不识别日期 new Date("2018-07-01 08:00:00")在Android下正常显示可以直接进 ...

  4. iOS 15 Beta升级卡死在更新进程,无法启动怎么办?

    2021苹果全球开发者大会结束后,大批果粉迫不及待的尝试升级iOS 15测试版本,想第一时间体验新功能. 但是许多用户反馈升级一直卡死在"准备更新"."验证更新" ...

  5. iOS中的过期方法和新的替代方法

    关于iOS中的过期方法和新的替代方法 1.获取某些类的UINavigationBar的统一外观并设置UINavigationbar的背景 注:方法名改了但是基本使用方法不变 + (instancety ...

  6. opencv直线检测在c#、Android和ios下的实现方法

    opencv直线检测在c#.Android和ios下的实现方法 本文为作者原创,未经允许,不得转载 :原文由作者发表在博客园:http://www.cnblogs.com/panxiaochun/p/ ...

  7. 解决Android时时更新listview数组越界问题

    时时更新数据一般出现在金融.股票行业对数据的准确性要求极高情况下使用. 先来看看下面一段代码, public class MainActivity extends Activity { private ...

  8. iOS开发——实用篇&提高iOS开发效率的方法和工具

    提高iOS开发效率的方法和工具 介绍 这篇文章主要是介绍一下我在iOS开发中使用到的一些可以提升开发效率的方法和工具. IDE 首先要说的肯定是IDE了,说到IDE,Xcode不能跑,当然你也可能同时 ...

  9. iOS与HTML5交互方法总结(转)

    今天小编在找技术文章的时候,发现这样一个标题:iOS与HTML5交互方法总结,怎么看着这么熟悉呢?   还以为是刚哥用了别的文章,点进去一看,原来是刚哥自己写的文章,他们转载的,而且还上了Dev St ...

随机推荐

  1. Solr学习、安装与Quick Start

    之前用Lucene进行了一些简单的例子,现在安装Solr学习一下. 在mac下,貌似可以直接brew install solr来进行安装.尝试一下. 貌似安装成功了: ==> Summary

  2. SVN服务的部署及使用

      环境说明 系统版本     CentOS 7.2 x86_64   SVN是Subversion的简称,是一个开放源代码的版本控制系统,相较于RCS.CVS,它采用了分支管理系统,它的设计目标就是 ...

  3. HDU2491 Priest John's Busiest Day

    题目链接 题意: 有n个人要进行乒乓球比赛,每一个人都一个能力值.每一个人出现的次序就是他们住的位置 如今要求进行一场比赛,三个人,裁判的能力值在两个选手之间,住的位置也在两个人的之间 问这样的比赛一 ...

  4. 集成方法:渐进梯度回归树GBRT(迭代决策树)

    http://blog.csdn.net/pipisorry/article/details/60776803 单决策树C4.5由于功能太简单.而且非常easy出现过拟合的现象.于是引申出了很多变种决 ...

  5. $ 和getElementId的区别 / 一个jquery对象的原型

    请说出 div 和 $div 的联系和区别 区别 div 返回一个HTML DOM Object $div 返回一个 jQuery Object, 两者不等价 $div是包装了dom对象后产生的,无法 ...

  6. jQuery编程小结

    加载jQuery 1.坚持使用CDN来加载jQuery,这种别人服务器免费帮你托管文件的便宜干嘛不占呢.点击查看使用CDN的好处,点此查看一些主流的jQuery CDN地址. <script t ...

  7. HDU 1009:FatMouse&#39; Trade(简单贪心)

    FatMouse' Trade Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) ...

  8. windows操作系统记事本保存操作时间、字符映射表的打开、步骤记录器使用

    记事本自动记录修改时间 你有用记事本记账或写日记的习惯吗?其实在记事本的文档开头输入".LOG"(无引号,字母为大写),之后记录内容并保存,这样以后打开就会看到之前每次修改的时间了 ...

  9. Atitit.java 反编译 工具  attilax 总结

    Atitit.java 反编译 工具  attilax 总结 1. 三大核心核心引擎——1 2. JAD  Jad  attitude推荐这个1 2.1. Jdec.2 2.2. 二. 源码开放的 J ...

  10. Atitit. 包厢记时系统 的说明,教程,维护,故障排查手册v2 pb25.doc

    Atitit. 包厢记时系统 的说明,教程,维护,故障排查手册v2 pb25.doc 1. 服务器方面的维护1 1.1. 默认情况下,已经在系统的启动目录下增加了 个启动项目1 1.2. 后台服务.保 ...