亲爱的同学程序员,IOS 9 - 调用的cellForRowAtIndexPath时
我最近更新的Xcode 7和斯威夫特2,现在,每当我滚动向上或向下滚动/掉电时的tableview细胞跳跃,画面跳一点点(没有太疯狂),但它使导航laggy。 只要我在屏幕上显示一个新的单元格,就会发生这种情况cellForRowAtIndexPath被调用。
cellForRowAtIndexPath,对于每个单元我实际上使用HanekeSwift,Labels和Buttons(使用switch,case,if等等)设置一堆imageView。
奇怪的部分是,只要我在cellForRowAtIndexPath中评论大部分设置,跳跃部分就消失了。
我试过评论每个部分,但我没有设法检测什么是负责跳转部分。或者我想知道这是否与治疗有很多相关。
每个单元格的高度都不同,我使用自动布局来检测每个单元格的高度。 timelineTableView.rowHeight = UITableViewAutomaticDimension timelineTableView.estimatedRowHeight = 600
我还试图执行estimatedHeightForRowAtIndexPath委托方法和手动计算每个小区的但没有成功的高度。
任何人都有一个想法,为什么我遇到了跳动的部分,为什么当我评论所有的东西,跳了没有?
更新1: 而与时间探查(注释掉我的cellForRowAtIndexPath方法的一些功能)播放时,我意识到,当的cellForRowAtIndexPath的运行时间比80-90ms下,我没有看到跳动的部分。此外,运行时间越长,我越觉得跳跃
在设备上运行时,在仪器中使用时间分析器来查找慢速线。但这是一个在细胞制备方法中要做的工作!通过根据设备尺寸进行切换,您也击败了自动布局的要点:) – jrturton
您是否认为这可能与以下事实有关:这是一个很多细胞制备的事实?我有选择吗?我必须为每个Cell设置所有这些。 – fabdarice
并非所有人都需要每次都做。但用仪器找到你的慢码,不要猜测。 – jrturton