JXPagingView icon indicating copy to clipboard operation
JXPagingView copied to clipboard

关于回调很慢导致点击cell无法响应的问题

Open WuChangFish opened this issue 2 years ago • 6 comments

你的demo里你也可以试一下,减少一些cell,然后加大一些cell的高度,快速滑到底部,这时列表其实已经停止了,但是由于回调很慢,所以第一次点击无法响应,需要等个一两秒的样子才回调过来,这时才能正常点击

WuChangFish avatar Apr 26 '22 01:04 WuChangFish

这个问题,作者之前就已经给出解决方案了,在cell上盖一个cell一样大的button,用button的时间代替cell的点击

JC-Sung avatar Apr 26 '22 02:04 JC-Sung

没有用呀,我的cell上加了button的,点击button也无法响应

WuChangFish avatar Apr 26 '22 02:04 WuChangFish

https://github.com/pujiaxin33/JXPagingView#%E5%85%B3%E4%BA%8E%E4%B8%8B%E6%96%B9%E5%88%97%E8%A1%A8%E8%A7%86%E5%9B%BE%E7%9A%84%E4%BB%A3%E7%90%86%E6%96%B9%E6%B3%95--voidtableviewuitableview-tableview-didselectrowatindexpathnsindexpath-indexpath%E6%9C%89%E6%97%B6%E5%80%99%E9%9C%80%E8%A6%81%E7%82%B9%E5%87%BB%E4%B8%A4%E6%AC%A1%E6%89%8D%E5%9B%9E%E8%B0%83 是按作者这样处理的回调的吗?

JC-Sung avatar Apr 26 '22 02:04 JC-Sung

我在cell上加了按钮,第一次点击还是不响应点击事件,但是会触发tableview的停止回调,第二次点击才会响应,问题还是由于tableview的停止回调太慢

WuChangFish avatar Apr 28 '22 07:04 WuChangFish

找到UIScrollView的代理方法,scrollViewDidEndDragging中!decelerate情况下主动调用scrollViewDidEndDecelerating即可, 具体的可以看看看YNPageViewController的内部处理逻辑

JC-Sung avatar Apr 28 '22 08:04 JC-Sung

我是简单移植嵌套相关逻辑,也发现这个问题,这个问题原因判断边界滚动直接设置contentOffset导致的 解决:在滚动强制固定mainTableView偏移时,判断滚动方向,手指向上滑动时,使用setContentOffset let transPoint = mainTableView.panGestureRecognizer.translation(in: mainTableView) if transPoint.y > 0 { //手指向下划动 mainTableView.contentOffset = CGPoint(x: 0, y: mainTableViewMaxContentOffsetY()) } else { //手指向上划动,避免快速点击无响应 mainTableView.setContentOffset(CGPoint(x: 0, y: mainTableViewMaxContentOffsetY()), animated: false) }

wrxdz avatar May 30 '22 02:05 wrxdz