一个很常见的需求就是在一个cell上点赞,评论等操作时,需要刷新单个cell对象,常用的方法即为:

[self.tableView reloadRowsAtIndexPaths:[NSArray arrayWithObjects:[NSIndexPath indexPathForRow:index inSection:0],nil] withRowAnimation:UITableViewRowAnimationNone];
仅仅这行代码会引起cell上下跳动的问题,原因是 上述刷新过程中,虽然我们已经设置UITableViewRowAnimationNone,但任然会默认添加隐式动画效果。
解决办法:去掉动画效果。

方法1:(支持iOS7+)

[UIView performWithoutAnimation:^{
[self.tableView reloadRowsAtIndexPaths:[NSArray arrayWithObjects:[NSIndexPath indexPathForRow:index inSection:0],nil] withRowAnimation:UITableViewRowAnimationNone];
}];
方法2:

[UIView animateWithDuration:0 animations:^{
[collectionView performBatchUpdates:^{
[collectionView reloadItemsAtIndexPaths:@[[NSIndexPath indexPathForItem:index inSection:0]]];
} completion:nil];
}];
方法3:(仅用于iOS11以后)

[UIView setAnimationsEnabled:NO];
[self.tableView performBatchUpdates:^{
[self.tableView reloadRowsAtIndexPaths:[NSArray arrayWithObjects:[NSIndexPath indexPathForRow:index inSection:0],nil] withRowAnimation:UITableViewRowAnimationNone];
} completion:^(BOOL finished) {
[UIView setAnimationsEnabled:YES];
}];

用reloadRowsAtIndexPaths刷新单个cell 跳动问题相关推荐

  1. UITableView刷新单个cell或者单个Section

    //一个section刷新     NSIndexSet *indexSet=[[NSIndexSet alloc]initWithIndex:2];     [tableview reloadSec ...

  2. easypoi导出excel不设置样式_EasyExcel为单个Cell设置样式

    EasyExcel是阿里巴巴对POI封装的一个库,号称解决了POI的OOM问题,并且在使用上也更方便一些 然而我在使用的时候发现还是有很多坑,其中一个比较头疼的是对单个单元格样式的设置.EasyExc ...

  3. Bootstrap4+MySQL前后端综合实训-Day07-AM【ajax局部刷新——(单个/批量)删除用户按钮的实现、更新用户信息按钮的实现】

    [Bootstrap4前端框架+MySQL数据库]前后端综合实训[10天课程 博客汇总表 详细笔记][附:实训所有代码] 目   录 (单个/批量)删除用户按钮的实现.更新用户信息按钮的实现--展示 ...

  4. Web前端笔记-解决NicSroll使用后页面跳动(每次刷新或进入跳动一下然后正常)问题

    我的是这样的页面 头部和尾部不动,就中间动.但每次刷新时会先出现这个. 然后页面跳动下,就正常了,很奇怪的体验,对应的代码如下: <head>.........<script> ...

  5. EasyExcel为单个Cell设置样式

    InteliJ IDEA全家桶正版激活 EasyExcel是阿里巴巴对POI封装的一个库,号称解决了POI的OOM问题,并且在使用上也更方便一些 Github: 然而我在使用的时候发现还是有很多坑,其 ...

  6. iOS Core Animation + Foundation + UIKit

    目录 Core Animation CAShapeLayer CAGradientLayer CAGradientLayer和CAShapeLayer配合使用 CAGradientLayer隐式动画 ...

  7. iOS开发中 经常遇到的坑,看我就够了! 韩俊强的博客

    从事iOS开发有些年月了,从最开始的磕磕绊绊,不知所措,到现在的遇到困难都能快速做出最佳方案处理,中间经历了不可或缺的痛苦.在项目开发中,本人有用印象笔记记录的习惯,所以很多重复出现的坑,很快迎刃而解 ...

  8. 刷新UITableView

    [from]http://www.superqq.com/blog/2015/08/18/ios-development-refresh-uitableview/ UITableView对于iOS开发 ...

  9. tableview插入刷新_iOS中tableview的几种刷新

    iOS中tableview的几种刷新 第一种刷新:tableview的刷新   [self.tableView reloadData]; reloadData是刷新整个UITableView,有时候, ...

  10. 深入理解SpringCloud之配置刷新

    我们知道在SpringCloud中,当配置变更时,我们通过访问http://xxxx/refresh,可以在不启动服务的情况下获取最新的配置,那么它是如何做到的呢,当我们更改数据库配置并刷新后,如何能 ...

最新文章

  1. 【PAT乙级】1072 开学寄语 (20 分)
  2. influxdb 最近小时统计_用pandas快速统计学生年龄班级等分组信息
  3. G6 图可视化引擎——核心概念——节点/边/Combo——内置节点——Circle
  4. jzoj3382-七夕祭【贪心,中位数】
  5. 数据结构之顺序队列和链式队列常用的一些操作
  6. 万物智联时代的终端智能「管家」 重磅升级:混合云IoT一体机
  7. db2 语句包括不必要的列表_DB2 SQL0956C 数据库堆中没有足够的处理空间可用来处理此语句...
  8. 那个 CEO 写下 70 万行代码的公司,马上要上市了
  9. visual c语言编译运行结果,Visual Studio 2015编译运行C语言文件问题小结
  10. 洛谷P3048 [USACO12FEB]牛的IDCow IDs
  11. Julia : 如何在Atom中能用上go to definition?
  12. SoapUI接口测试——全流程转载
  13. 计算机一级excel建立数据透视表,excel中插入数据透视表的方法
  14. HTML5 实现拼图游戏
  15. 计算机硬盘数据如何恢复,如何防止硬盘数据被恢复?毁灭数据教程
  16. 苹果ipad服务器无响应怎么办,苹果iPad死机怎么办?几种处理iPad使用过程中死机的方法...
  17. vue如何关闭eslint语法检查
  18. 4个月转行做软件测试,我的薪资飙升300%
  19. BLE_BQB Test_Intermodulation Performance, uncoded data at 1 Ms/s_RF-PHY/RCV/BV-05-C
  20. 树莓派 树莓派 编c++_为什么树莓派仍然是教育的白骑士

热门文章

  1. 内核调试神器SystemTap — 更多功能与原理(三)
  2. SylixOS armv8 任务切换
  3. linux内核配置成qspi挂载,【分享】在Linux/U-Boot里为QSPI Flash使用UBIFS
  4. SparkSQL简单教程
  5. python 多线程 入门
  6. hadoop 新API与旧API对比
  7. 深度优先搜索 详解(C++)
  8. string---substr
  9. python中input的用法霍格沃_欢迎来到霍格沃茨—魔法01 Python 环境安装
  10. 上网时间监控软件_网管软件有哪一些?哪家好?