Commit c3b1a8e9 by Daniel Dahan

removed delegation calls for scrollView that influenced the TabBar

parent 58a621a6
...@@ -102,9 +102,6 @@ open class PageMenuController: UIViewController { ...@@ -102,9 +102,6 @@ open class PageMenuController: UIViewController {
@IBInspectable @IBInspectable
open let scrollView = UIScrollView() open let scrollView = UIScrollView()
/// Previous scroll view content offset.
fileprivate var previousContentOffset: CGFloat = 0
/// An Array of UIViewControllers. /// An Array of UIViewControllers.
open var viewControllers: [UIViewController] { open var viewControllers: [UIViewController] {
didSet { didSet {
...@@ -123,9 +120,6 @@ open class PageMenuController: UIViewController { ...@@ -123,9 +120,6 @@ open class PageMenuController: UIViewController {
} }
} }
/// The number of views used in the scrollViewPool.
fileprivate let viewPoolCount = 3
/** /**
An initializer that initializes the object with a NSCoder object. An initializer that initializes the object with a NSCoder object.
- Parameter aDecoder: A NSCoder instance. - Parameter aDecoder: A NSCoder instance.
...@@ -135,6 +129,12 @@ open class PageMenuController: UIViewController { ...@@ -135,6 +129,12 @@ open class PageMenuController: UIViewController {
super.init(coder: aDecoder) super.init(coder: aDecoder)
} }
/// Previous scroll view content offset.
fileprivate var previousContentOffset: CGFloat = 0
/// The number of views used in the scrollViewPool.
fileprivate let viewPoolCount = 3
/** /**
An initializer that accepts an Array of UIViewControllers. An initializer that accepts an Array of UIViewControllers.
- Parameter viewControllers: An Array of UIViewControllers. - Parameter viewControllers: An Array of UIViewControllers.
...@@ -445,49 +445,14 @@ extension PageMenuController { ...@@ -445,49 +445,14 @@ extension PageMenuController {
extension PageMenuController: UIScrollViewDelegate { extension PageMenuController: UIScrollViewDelegate {
@objc @objc
open func scrollViewDidScroll(_ scrollView: UIScrollView) {
guard let tb = tabBar else {
return
}
guard tb.isAnimating else {
return
}
// guard let selected = tb.selected else {
// return
// }
// let x = (scrollView.contentOffset.x - scrollView.width) / scrollView.contentSize.width * scrollView.width
// tb.line.center.x = selected.center.x + x
}
@objc
open func scrollViewWillBeginDragging(_ scrollView: UIScrollView) {
previousContentOffset = scrollView.contentOffset.x
}
@objc
open func scrollViewDidEndDecelerating(_ scrollView: UIScrollView) { open func scrollViewDidEndDecelerating(_ scrollView: UIScrollView) {
let n = viewControllers.count let n = viewControllers.count
let x = scrollView.contentOffset.x let x = scrollView.contentOffset.x
let p = previousContentOffset == x ? 0 : previousContentOffset < x ? 1 : -1 let w = scrollView.width
let p = Int(floor((scrollView.contentOffset.x - w / 2) / w) + 1)
guard 0 != p else { print(selectedIndex, p)
return
}
let i = selectedIndex + p
guard selectedIndex != i else {
return
}
guard 0 <= i && i < n else { selectedIndex = p
return
}
selectedIndex = i
removeViewControllers() removeViewControllers()
prepareViewControllers() prepareViewControllers()
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment