Shazam icon indicating copy to clipboard operation
Shazam copied to clipboard

下拉刷新导致的滑动问题

Open cuzv opened this issue 3 years ago • 4 comments

不确定这个是不是我的姿势不正确,文章中提到在 child vc 分别实现下拉刷新,我使用了最简单的系统控件 UIRefreshControl.

大致代码:

override func viewDidLoad() {
    // ...
    let refreshControl = UIRefreshControl()
    tableView.refreshControl = refreshControl
    refreshControl.addTarget(self, action: #selector(refresh), for: .valueChanged)
}

@objc private func refresh() {
    DispatchQueue.main.asyncAfter(deadline: .now() + .seconds(2)) {
        self.tableView.refreshControl?.endRefreshing()
    }
}

诡异效果:

图一:下拉滑动刷新过程中,左右拖拽 mainScrollView

1

图二:下拉滑动刷新未结束时,切换到其他 VC, 刷新完成后不会回弹

2

切换 keepChildScrollViewOffset 没有区别,效果还是一样。

cuzv avatar Apr 27 '21 03:04 cuzv

这个问题,我目前还没想好怎么处理比较好,确实是个 bug,推荐你用另外一个库,https://github.com/bawn/Aquaman

bawn avatar Apr 27 '21 08:04 bawn

@bawn 二级 ScrollView 的实现效果更好,希望能解决吧。感谢分享🙏。

cuzv avatar Apr 27 '21 08:04 cuzv

@cuzv 已经已修复 => https://github.com/bawn/Shazam/commit/9125415f9934900803ccd1bea5be86991dce68c0,暂时还没提交到 cocoapods 你可以通过分支形式引入

bawn avatar May 10 '21 07:05 bawn

@bawn 滑动问题是好了,可能无意中引入了另外一个 bug: 切换 tab 后,顶部 header 会自己跳动。 UI is HARD :[ 1

cuzv avatar May 17 '21 02:05 cuzv