JXSegmentedView icon indicating copy to clipboard operation
JXSegmentedView copied to clipboard

频繁点击切换segment,会有明显卡顿

Open Jaylin0920 opened this issue 4 years ago • 15 comments

问题:频繁快速的点击切换segment,页面会跟着左右滑动,然后会有明显卡顿。拖拽滑动时,无卡顿现象出现。 我又试了下,不需要快速的点击切换,正常速度点击切换,差不多10次左右之后,也会出现明显的卡顿现象

版本:pod 'JXSegmentedView','1.0.5' 手机:11pro-max,13.3.1,后升级到13.4.1也有同样的问题(我的另一个手机就没这个问题,是iphone11,13.4.1)

Jaylin0920 avatar Apr 12 '20 08:04 Jaylin0920

是因为列表上面有图片加载吗?

pujiaxin33 avatar Apr 13 '20 01:04 pujiaxin33

你把containerType换成scrollView试试呢?

pujiaxin33 avatar Apr 13 '20 01:04 pujiaxin33

是因为列表上面有图片加载吗?

列表上是有图片,左右列表都有图片,目前加载的是网络图片,我尝试了仅加载本地的很小的图片,卡顿还是存在

Jaylin0920 avatar Apr 13 '20 05:04 Jaylin0920

你把containerType换成scrollView试试呢?

我用的是默认的scrollView样式

Jaylin0920 avatar Apr 13 '20 05:04 Jaylin0920

楼主是之前也碰到过类似的问题么,后来是如何解决的呀?

Jaylin0920 avatar Apr 13 '20 05:04 Jaylin0920

我们碰到,你要是有时间,可以写一个复现问题的demo给我,我好分析问题。

pujiaxin33 avatar Apr 13 '20 05:04 pujiaxin33

好的好的,那我有时间搞个问题demo

Jaylin0920 avatar Apr 13 '20 05:04 Jaylin0920

滑动的过程中 刷新 segmentedView.reloadDataWithoutListContainer() 会有卡顿 或者滑过去 又切换回了了

CivelXu avatar May 15 '20 06:05 CivelXu

@CivelXu 为什么滑动过程中要调用reloadDataWithoutListContainer方法呢

pujiaxin33 avatar May 15 '20 08:05 pujiaxin33

@pujiaxin33 大概就是每次滑到一个tab上, 异步调个接口,获取消息数量,reload segmentedView titles。滑动快了 和刷新的逻辑 冲突。

CivelXu avatar May 15 '20 08:05 CivelXu

如果你只需要刷新某一个item,我记得有一个方法reloadItemAt。

pujiaxin33 avatar May 15 '20 08:05 pujiaxin33

@pujiaxin33 [大佬,感谢你写的轮子,很好用。我也重现了卡顿,快速的左右滑动有明显的卡顿,写了demo,能否看看? JXCategoryViewDemo.zip

RedBluePeas avatar May 18 '20 09:05 RedBluePeas

@RedBluePeas 按下面代码注释多余的代码:

    func segmentedView(_ segmentedView: JXSegmentedView, didSelectedItemAt index: Int) {
        debugPrint("点击了某个item:\(index)")
//        let frame = CGRect.init(x: kScreenW*CGFloat(index), y: 0, width: kScreenW, height: self.scrollView.frame.size.height)
//        self.scrollView.scrollRectToVisible(frame, animated: true)
    }

尽量按照demo示例的写法来。

pujiaxin33 avatar May 18 '20 10:05 pujiaxin33

@pujiaxin33 感谢,问题解决了

RedBluePeas avatar May 19 '20 00:05 RedBluePeas

@pujiaxin33 大概就是每次滑到一个tab上, 异步调个接口,获取消息数量,reload segmentedView titles。滑动快了 和刷新的逻辑 冲突。

这个确实是一个比较常见的case,你之后有找到fix方法么

Yrocky avatar Feb 02 '23 11:02 Yrocky