专栏首页娱乐心理测试用reloadRowsAtIndexPaths刷新单个cell 跳动问题

用reloadRowsAtIndexPaths刷新单个cell 跳动问题

一个很常见的需求就是在一个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];
        }];

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • Hybrid App 应用开发中 9 个必备知识点复习

    我们大前端团队内部 ?每周一练 的知识复习计划继续加油,本篇文章是 《Hybrid APP 混合应用专题》 主题的第二期和第三期的合集。

    ConardLi
  • 分享集锦:设计模式讲解、Node.js 教程、Swift UI、Java 开发

    最近这段时间比较忙,产出内容频率低了一些,等这周忙完后,后面会抽空写几篇 GitHub 专题文章,敬请期待。

    GitHubDaily
  • 【总结】ios端被忽略的文件容错测试

    iphone沙盒模型的有四个文件夹:分别是 documents,Library,tmp,app包。手动保存的文件在documents文件里,NSUserdef...

    用户5521279
  • 纯代码实现matlabのGUI界面搭建

    图形用户界面 (Graphical User Interface,简称 GUI),是有别于纯代码执行,GUI能够繁琐的代码浓缩到一块简洁的界面上,用户只需要输输...

    艾木樨
  • 《挑战30天C++入门极限》C++的iostream标准库介绍(1)

      我们所熟悉的输入输出操作分别是由istream(输入流)和ostream(输出流)这两个类提供的,为了允许双向的输入/输出,由istream和ostre...

    landv
  • 为什么Flutter是跨平台开发的终极之选

    导读:近日,谷歌开发者官方宣布,Flutter 1.7 正式发布,包含了对 AndroidX 的支持。

    华章科技
  • Flutter + MVP +Kotlin 实战!

    Kotlin,由 JetBrains 于 2011.07 推出,一款面向 JVM 在 Java 虚拟机上运行的静态类型编程语言。

    CCCruch
  • 腾讯社招iOS面试记录

    毕业好几年了,上周发送了简历给腾讯,参加了腾讯面试。具体部门这边就不说了。这次面试还是收获到了很多。

    iOSSir
  • 浅谈几种设计模式

    策略模式、模板方法模式、观察者模式、迭代子模式、责任链模式、命令模式、备忘录模式、状态模式、访问者模式、中介者模式、解释器模式。

    用户4143945
  • UILabel显示定时器文本的跳动问题解决方案

    上面的gif图会发现在显示验证码计数时出现跳动和闪烁的问题。目前大多数用来实现定时器显示的控件都是UILabel。

    欧阳大哥2013

扫码关注云+社区

领取腾讯云代金券