1
bjzhou1990 2017-03-08 10:27:24 +08:00
-2 .....
在这里用中文描述一遍? |
2
knight322 2017-03-08 10:29:48 +08:00
看到有人回答了哦
|
3
Mine 2017-03-08 10:33:12 +08:00
不是有人回答你吗?
|
4
Yc1992 2017-03-08 10:39:43 +08:00
估计是因为英文太差了所以-2.。。
|
5
bombless 2017-03-08 10:48:36 +08:00
……就你提供的这些信息别人根本无从重现
|
6
paradoxs 2017-03-08 10:50:29 +08:00
发在那里没意思, 你要是用中文在这里发, 分分钟解决了.
|
8
heqichang OP @bjzhou1990 tableview 里每个 cell 高度不同,加载新的数据 reloadData 后,用 swift3 ios8 下的 tableview 会自动改变 contentOffset ,但是同样的代码逻辑,同样的机器用 swift2 不会改变 contentOffset 。写了个 demo 在这里 https://github.com/heqichang/swift3-tableview-issue
|
11
wtser 2017-03-08 11:33:14 +08:00
|
12
jadecoder 2017-03-08 11:37:14 +08:00
一个周无回答无评论可以获得一个风滚草徽章, lz 得到了吗?
|
13
heqichang OP @wtser 😄,也发布问题了,还早于 stackoverflow ,就是没人回答才上的 stackoverflow 。 https://segmentfault.com/q/1010000008453554
|
16
nagato 2017-03-08 12:00:01 +08:00
每次 reload 你的 height 都变了?
|
17
xuboying 2017-03-08 12:05:32 +08:00 via Android
so 看问题的。 py 一类的都是秒回
太独特的问题没回答的。很正常。 sf 就算了。 |
18
airbob 2017-03-08 12:26:16 +08:00
没有复现你的问题,两个 demo 都试了
|
20
heqichang OP @airbob 哦?你的测试机型和系统是什么哩?我手上只有三台测试机,所以无法确定覆盖所有版本。我测试有问题的机器是 iphone5s ,系统是 8.4 。其它 ios8 系统没测过。我这还有两台 ios10 的机子就没问题。
|
22
heqichang OP @airbob 你是 ios8 的 simulator 吗?我不确定,因为我没在 simulator 测试过,我这里本地只有 ios10 的 simulator ,没下 ios8 的。
|
24
heqichang OP @airbob 我去下载个旧版本 simulator 试试哈。顺道吐槽下 Xcode 里下载旧版本的 simulator 太慢了。。。😅
|
25
airbob 2017-03-08 18:17:26 +08:00
|
26
dapeng 2017-03-08 18:28:24 +08:00
楼主,你的中文问题描述呢
|
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-03-12 14:01:10 +08:00
楼主,我想问问你 cell height 是算出来的么。。。? 还有视觉上有什么不同,你的意思好像是 reload 后 cell 的垂直位置变化了,对吧?
|
34
heqichang OP @InfinitySam 我随手写的固定的一个高度序列,[150, 500, 150, 150, 150, 300, 100, 300]。是啊,垂直位置发生了变化,但是,同样的代码, 我这里测试,只有在 ios8 ,并且是 swift3 上才会出现这个问题,模拟器 ios8 上也能复现。
|
35
xiabob 2017-03-13 17:09:56 +08:00
是的,我迁移到 swift3 ,在 iOS8 上也有这个问题, func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat 方法调用有问题, IndexPath 不全,你也可以测一下
|
36
heqichang OP @xiabob 是啊,好像是这样的,调 reload 后在 heightForRowAt 方法里的 IndexPath 数目不对,总是少 1 个。你们解决这个问题了吗?
|
37
xiabob 2017-03-14 09:56:17 +08:00
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-01-18 11:14:58 +08:00
这里肯定有人回答的:
https://www.stackoverflowchina.com |