问题:

stackoverflow上有人提问这样的问题

http://stackoverflow.com/questions/16071503/how-to-tell-when-uitableview-has-completed-reloaddata

如果在调用reloadDate方法后需要立即获取tableview的cell、高度,或者需要滚动tableview,那么,直接在reloadData后执行代码是有可能出问题的。

原因:

reloadDate并不会等待tableview更新结束后才返回,而是立即返回,之后再计算表高度,获取cell(主线程中)。

如果表中的数据非常大,在一个run loop周期没执行完,这时,需要tableview视图数据的操作就会出问题了。

apple并没有直接提供reloadData的api,想要程序延迟到reloadData结束在操作,可以用以下方法

方法1:

[self.tableView reloadData];
[self.tableView layoutIfNeeded];
//刷新完成

layoutIfNeeded会强制重绘并等待完成。

方法2:

[self.tableView reloadData];
dispatch_async(dispatch_get_main_queue(), ^{
//刷新完成
});

reloadDate会在主队列执行,而dispatch_get_main_queue会等待机会,直到主队列空闲才执行

最新文章

  1. vmware workstation安装 Mosrosoft Runtime DLL安装程序未能完成安装
  2. MyBatis学习总结(一)——MyBatis快速入门
  3. PCB Layout高速电路设计小知识点
  4. 几个常见的布局的多种实现方式及margin负值总结
  5. C# 中科学计数法转成正常值
  6. 使用Topshelf 开发windows服务
  7. 2015南阳CCPC D - Pick The Sticks dp
  8. Android(java)学习笔记93:Android布局详解之一:FrameLayout
  9. tr 命令 操作字符串中字符 删除替换 等
  10. 如何解决PHP生成UTF-8编码的CSV文件用Excel打开乱码的问题
  11. 从今天开始学习C#啦
  12. mysql中游标的使用案例详解(学习笔记)
  13. Playground中格式注释语法
  14. [Swift]LeetCode587. 安装栅栏 | Erect the Fence
  15. jvm虚拟机分享课笔记
  16. Sitecore CMS中的项目如何配置帮助文本
  17. OS Tools-GO富集分析工具的使用与解读详细教程
  18. NOI1999 生日蛋糕
  19. mysql每天凌晨0点准时启动taskeng.exe如何关闭
  20. Graphics.Blit

热门文章

  1. 一款手机端的jQuery图片滑块插件
  2. pthread_testcancel和pthread_cancel函数的简单示例
  3. Adnroid 反编译APK
  4. 打开Win7休眠模式和离开模式的方法
  5. 页面装载js及性能分析方法
  6. ADC相关参数之---INL和DNL
  7. 联合主键用hibernate注解映射方式主要有三种:
  8. e637. 向剪切板获取和粘贴文本
  9. VMWare -- winscp实现windows主机和Ubuntu虚拟机之间文件复制(通过ftp协议)
  10. R语言hist绘图函数