bawn / Aquaman

A pure-Swift library for nested display of horizontal and vertical scrolling views
https://bawn.github.io/#blog
MIT License
269 stars 42 forks source link

在真机11,系统14.5的真机上,在有无导航栏的情况下,contentScrollView滑动的时候,直接整个界面滑到顶部了,记录不了每个childScrollView滑动的高度 #11

Open Ryan1219 opened 1 year ago

Ryan1219 commented 1 year ago

//MARK: ----AquamanPageViewControllerDelegate---- override func headerViewFor(_ pageController: AquamanPageViewController) -> UIView { return headerView }

override func headerViewHeightFor(_ pageController: AquamanPageViewController) -> CGFloat {
    return headerHeight
}

override func menuViewFor(_ pageController: AquamanPageViewController) -> UIView {
    return sectionView
}

override func menuViewHeightFor(_ pageController: AquamanPageViewController) -> CGFloat {
    return sectionHeight
}

override func originIndexFor(_ pageController: AquamanPageViewController) -> Int {
    return currentSelectIndex
}

override func numberOfViewControllers(in pageController: AquamanPageViewController) -> Int {
    return viewControllers.count
}

override func pageController(_ pageController: AquamanPageViewController, didDisplay viewController: (UIViewController & AquamanChildViewController), forItemAt index: Int) {

}

override func pageController(_ pageController: AquamanPageViewController, viewControllerAt index: Int) -> (UIViewController & AquamanChildViewController) { return viewControllers[index] }

// override func contentInsetFor(_ pageController: AquamanPageViewController) -> UIEdgeInsets { // return UIEdgeInsets.init(top: 40.0, left: 0, bottom: 0, right: 0) // }

override func menuViewPinHeightFor(_ pageController: AquamanPageViewController) -> CGFloat {
    let topH: CGFloat = Device_hasTopNotic ? 88 : 64
    return topH
}
Ryan1219 commented 1 year ago

我找到原因了,是因为代码执行了这里造成的 if mainScrollView.contentOffset.y < sillValue { scrollView.contentOffset = scrollView.am_originOffset ?? .zero scrollView.am_isCanScroll = false mainScrollView.am_isCanScroll = true }

    在真机11的时候 mainScrollView.contentOffset.y < sillValue 这个条件成立
    不知道为什么??
Ryan1219 commented 1 year ago

真机11,系统14.5,不管有没有导航栏,来回滑动都会滚动到第一条数据的地方 就是会执行这个归零代码 if mainScrollView.contentOffset.y < sillValue { scrollView.contentOffset = scrollView.am_originOffset ?? .zero scrollView.am_isCanScroll = false mainScrollView.am_isCanScroll = true }

bawn commented 1 year ago

能麻烦录个视频吗,就是bug的现象