iOS 11 tableNode的insertRowsAtIndexPaths:withRowAnimation:方法出现刷新界面闪动且无法定位到之前位置问题

在做iOS11适配时,发现iOS11以下insertRowsAtIndexPaths:withRowAnimation:方法出现刷新界面闪动且无法定位到之前位置问题。代码如下:

此方法作用是在tableNode列表中插入一行或多行cell,且停留在之前位置,在iOS 11之前代码有效,但iOS 11出现界面闪动,且滑动到顶部位置,无法满足设计需要。

查找iOS 11更新说明才知道,estimatedRowHeight属性值发生了变化,iOS 11之前的0,iOS 11之后,这个值默认为44。

iOS 11默认打开了estimatedRowHeight估算高度功能,当tableNode创建完成后,contentSize为estimatedRowHeight(默认值为44)*cell的数量,不需要遍历每一个cell的heightForRowAtIndexPath来计算了,这样就会造成contentSize不准确,导致加载更多是UI闪动,无法定位到准确位置等问题。

解决这个问题,需要如下设置,即可:


转载:https://www.jianshu.com/p/854d14484a99

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 在做iOS11适配时,发现iOS11以下insertRowsAtIndexPaths:withRowAnimati...
    Rice91阅读 6,450评论 3 4
  • 我们在上一篇《通过代码自定义不等高cell》中学习了tableView的相关知识,本文将在上文的基础上,利用sto...
    啊世ka阅读 5,415评论 2 7
  • 一、简介 <<UITableView(或简单地说,表视图)的一个实例是用于显示和编辑分层列出的信息的一种手段 <<...
    无邪8阅读 13,667评论 3 3
  • 前言 苹果WWDC开发者大会上,终于发布了大家期待已久的iOS 11,有些新特性功能确实出人意料。不过大的方面苹果...
    Mr_Say_Yes阅读 8,624评论 6 15
  • 一 周末跟我去宁波 在一个老师的推荐下买了票。他说:“这场剧,我在北京等了好几年都没等到呢!” 可买的最低票价是...
    绿沁2阅读 3,980评论 0 1