
1 bjzhou1990 2017 年 3 月 8 日 -2 ..... 在这里用中文描述一遍? |
2 knight322 2017 年 3 月 8 日 看到有人回答了哦 |
3 Mine 2017 年 3 月 8 日 不是有人回答你吗?/div> |
4 bytenoob 2017 年 3 月 8 日 估计是因为英文太差了所以-2.。。 |
5 bombless 2017 年 3 月 8 日 ……就你提供的这些信息别人根本无从重现 |
6 paradoxs 2017 年 3 月 8 日 发在那里没意思, 你要是用中文在这里发, 分分钟解决了. |
8 heqichang OP @bjzhou1990 tableview 里每个 cell 高度不同,加载新的数据 reloadData 后,用 swift3 ios8 下的 tableview 会自动改变 contentOffset ,但是同样的代码逻辑,同样的机器用 swift2 不会改变 contentOffset 。写了个 demo 在这里 https://github.com/heqichang/swift3-tableview-issue |
11 wtser 2017 年 3 月 8 日 |
12 jadecoder 2017 年 3 月 8 日 一个周无回答无评论可以获得一个风滚草徽章, lz 得到了吗? |
13 heqichang OP @wtser ,也发布问题了,还早于 stackoverflow ,就是没人回答才上的 stackoverflow 。 https://segmentfault.com/q/1010000008453554 |
16 nagato 2017 年 3 月 8 日 每次 reload 你的 height 都变了? |
17 xuboying 2017 年 3 月 8 日 via Android so 看问题的。 py 一类的都是秒回 太独特的问题没回答的。很正常。 sf 就算了。 |
18 airbob 2017 年 3 月 8 日 没有复现你的问题,两个 demo 都试了 |
20 heqichang OP @airbob 哦?你的测试机型和系统是什么哩?我手上只有三台测试机,所以无法确定覆盖所有版本。我测试有问题的机器是 iphone5s ,系统是 8.4 。其它 ios8 系统没测过。我这还有两台 ios10 的机子就没问题。 |
22 heqichang OP @airbob 你是 ios8 的 simulator 吗?我不确定,因为我没在 simulator 测试过,我这里本地只有 ios10 的 simulator ,没下 ios8 的。 |
25 airbob 2017 年 3 月 8 日 |
26 dapeng 2017 年 3 月 8 日 楼主,你的中文问题描述呢 |
29 heqichang OP @airbob 是啊,你的看起来没问题,有问题的话,它的 contentOffset 会有比较大的跳跃。话说的我的 simulator 挂机到现在还没下载完。。。 |
30 heqichang OP @airbob 我下载好 iOS8 的模拟器了, iOS 8.4 的系统,可以重现这个问题的。当加载完多余一屏的色块时,会看到 tableview 有明显的跳动,多加载几个色块之后,往上面滑动也会看到明显的跳跃。 |
31 heqichang OP @airbob 这里是我的 log https://gist.github.com/heqichang/89e9f2e29f29b1f39627340313510a1b 注意看里面 446.0 , 554.5 这些地方,明显的有一次大跳跃 |
33 InfinitySam 2017 年 3 月 12 日 楼主,我想问问你 cell height 是算出来的么。。。? 还有视觉上有什么不同,你的意思好像是 reload 后 cell 的垂直位置变化了,对吧? |
34 heqichang OP @InfinitySam 我随手写的固定的一个高度序列,[150, 500, 150, 150, 150, 300, 100, 300]。是啊,垂直位置发生了变化,但是,同样的代码, 我这里测试,只有在 ios8 ,并且是 swift3 上才会出现这个问题,模拟器 ios8 上也能复现。 |
35 xiabob 2017 年 3 月 13 日 是的,我迁移到 swift3 ,在 iOS8 上也有这个问题, func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat 方法调用有问题, IndexPath 不全,你也可以测一下 |
36 heqichang OP @xiabob 是啊,好像是这样的,调 reload 后在 heightForRowAt 方法里的 IndexPath 数目不对,总是少 1 个。你们解决这个问题了吗? |
37 xiabob 2017 年 3 月 14 日 tableView(_ tableView: UITableView, numberOfRowsInSection section: Int)返回 1 , func numberOfSections(in tableView: UITableView) -> Int 返回具体的数目,是可行的,不过局限太多了 |
38 heqichang OP @xiabob 我去!聪明啊!你这方法真可以,把 section 和 row 反一下。真坑爹!幸好正式项目里没有用到多 section ,但只针对 ios 8 来改动的地方还是蛮多的。 |
39 soverflowchina 2019 年 1 月 18 日 这里肯定有人回答的: https://www.stackoverflowchina.com |