Coder Social home page Coder Social logo

bawn / aquaman Goto Github PK

View Code? Open in Web Editor NEW
268.0 268.0 41.0 2.69 MB

A pure-Swift library for nested display of horizontal and vertical scrolling views

Home Page: https://bawn.github.io/#blog

License: MIT License

Swift 96.46% Ruby 1.38% Objective-C 2.16%
menuview nestedscrollview page pageviewcontroller scrollview swift swift-framework swift-library vertical-scrolling-views

aquaman's Introduction

Hi there 👋

aquaman's People

Contributors

bawn avatar bugkingk avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

aquaman's Issues

請問要如何得到真正的contentOffset?

在mainScrollViewDidScroll delegate印出contentOffset後,發現只要滾動超過header高度,回傳的值都會一樣,請問有辦法拿到包含childScrollView的contentOffset嗎?

Crash report

when trying to edit rows in tableview app crashed,
Screen Shot 2021-04-23 at 12 22 10 PM

mainScrollView手势和childScrollView手势冲突

有时候下拉childScrollView时,无法切换到mainScrollView 下拉,而是进入到childScrollView bounces回弹状态,如果设置了childScrollView.alwaysBounceVertical = false,则没有这个问题。

How to scroll to top?

I think as following.
mainScrollview.setContentOffset(.zero, animated: true)

But it is not working.

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

//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
}

大哥,bug来了,1.快速左右滑动闪退;2.上下多次滑动, current contentScrollView会出现偏移值不准确

修复代码
1.
func updateLayout(_ externalScrollView: UIScrollView) {

    let scrollViewWidth = externalScrollView.bounds.width
    let offsetX = externalScrollView.contentOffset.x
    let index = Int(offsetX / scrollViewWidth)
    guard index >= 0
        , index < stackView.arrangedSubviews.count else {
            return
    }
    currentIndex = index
    
    scrollRate = (offsetX - CGFloat(currentIndex) * scrollViewWidth) / scrollViewWidth
    let currentWidth = stackView.arrangedSubviews[currentIndex].bounds.width
    let leadingMargin = stackView.arrangedSubviews[currentIndex].frame.midX
    
    progressView.snp.updateConstraints { (make) in
        make.width.equalTo(widthDifference * scrollRate + currentWidth)
        make.centerX.equalTo(scrollView.snp.leading).offset(leadingMargin + itemSpace * scrollRate)
    }
}

func showChildViewContoller
let scrollView = targetViewController.aquamanChildScrollView()

// scrollView.am_originOffset = scrollView.contentOffset
if mainScrollView.contentOffset.y < sillValue {
// scrollView.contentOffset = scrollView.am_originOffset
scrollView.am_isCanScroll = false
mainScrollView.am_isCanScroll = true
}

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.