From a088f9fcdd1c966a4fe1375a4e0169cd51d191c3 Mon Sep 17 00:00:00 2001 From: Martin Barreto Date: Thu, 28 Jan 2016 18:33:38 -0300 Subject: [PATCH] refactor pagerOptions --- .../Example/BarExampleViewController.swift | 9 ++- .../ButtonBarExampleViewController.swift | 12 ++-- .../NavButtonBarExampleViewController.swift | 12 ++-- .../Example/ReloadExampleViewController.swift | 2 +- .../SegmentedExampleViewController.swift | 3 +- .../TwitterExampleViewController.swift | 7 --- .../YoutubeExampleViewController.swift | 2 + ...ButtonBarPagerTabStripViewController.swift | 4 +- ...ButtonBarPagerTabStripViewController.swift | 4 +- Sources/PagerTabStripOptions.swift | 57 +++++++++++++++---- Sources/PagerTabStripViewController.swift | 8 +-- 11 files changed, 78 insertions(+), 42 deletions(-) diff --git a/Example/Example/BarExampleViewController.swift b/Example/Example/BarExampleViewController.swift index 98bfea1..8839808 100644 --- a/Example/Example/BarExampleViewController.swift +++ b/Example/Example/BarExampleViewController.swift @@ -68,9 +68,12 @@ class BarExampleViewController: BarPagerTabStripViewController { override func reloadPagerTabStripView() { isReload = true - pagerOptions = rand() % 2 == 0 ? pagerOptions.union(.SkipIntermediateViewControllers) : (pagerOptions.remove(.SkipIntermediateViewControllers) ?? pagerOptions) - pagerOptions = rand() % 2 == 0 ? pagerOptions.union(.IsProgressiveIndicator) : (pagerOptions.remove(.IsProgressiveIndicator) ?? pagerOptions) - pagerOptions = rand() % 2 == 0 ? pagerOptions.union(.IsElasticIndicatorLimit) : (pagerOptions.remove(.IsElasticIndicatorLimit) ?? pagerOptions) + if rand() % 2 == 0 { + pagerBehaviour = .Progressive(skipIntermediteViewControllers: rand() % 2 == 0 , elasticIndicatorLimit: rand() % 2 == 0 ) + } + else { + pagerBehaviour = .Common(skipIntermediteViewControllers: rand() % 2 == 0) + } super.reloadPagerTabStripView() } } diff --git a/Example/Example/ButtonBarExampleViewController.swift b/Example/Example/ButtonBarExampleViewController.swift index 93bc0d7..62c17ff 100644 --- a/Example/Example/ButtonBarExampleViewController.swift +++ b/Example/Example/ButtonBarExampleViewController.swift @@ -32,10 +32,6 @@ class ButtonBarExampleViewController: ButtonBarPagerTabStripViewController { override func viewDidLoad() { super.viewDidLoad() - if pagerOptions.contains(.IsProgressiveIndicator) { - pagerOptions = pagerOptions.remove(.IsProgressiveIndicator)! - } - buttonBarView.selectedBar.backgroundColor = .orangeColor() buttonBarView.backgroundColor = UIColor(red: 7/255, green: 185/255, blue: 155/255, alpha: 1) } @@ -71,8 +67,12 @@ class ButtonBarExampleViewController: ButtonBarPagerTabStripViewController { override func reloadPagerTabStripView() { isReload = true - pagerOptions = rand() % 2 == 0 ? pagerOptions.union(.IsProgressiveIndicator) : (pagerOptions.remove(.IsProgressiveIndicator) ?? pagerOptions) - pagerOptions = rand() % 2 == 0 ? pagerOptions.union(.IsElasticIndicatorLimit) : (pagerOptions.remove(.IsElasticIndicatorLimit) ?? pagerOptions) + if rand() % 2 == 0 { + pagerBehaviour = .Progressive(skipIntermediteViewControllers: rand() % 2 == 0 , elasticIndicatorLimit: rand() % 2 == 0 ) + } + else { + pagerBehaviour = .Common(skipIntermediteViewControllers: rand() % 2 == 0) + } super.reloadPagerTabStripView() } } diff --git a/Example/Example/NavButtonBarExampleViewController.swift b/Example/Example/NavButtonBarExampleViewController.swift index 75a6b76..1be5ffc 100644 --- a/Example/Example/NavButtonBarExampleViewController.swift +++ b/Example/Example/NavButtonBarExampleViewController.swift @@ -35,10 +35,6 @@ class NavButtonBarExampleViewController: ButtonBarPagerTabStripViewController { //- super.viewDidLoad() - if pagerOptions.contains(.IsProgressiveIndicator) { - pagerOptions = pagerOptions.remove(.IsProgressiveIndicator)! - } - buttonBarView.removeFromSuperview() navigationController?.navigationBar.addSubview(buttonBarView) @@ -92,8 +88,12 @@ class NavButtonBarExampleViewController: ButtonBarPagerTabStripViewController { override func reloadPagerTabStripView() { isReload = true - pagerOptions = rand() % 2 == 0 ? pagerOptions.union(.IsProgressiveIndicator) : (pagerOptions.remove(.IsProgressiveIndicator) ?? pagerOptions) - pagerOptions = rand() % 2 == 0 ? pagerOptions.union(.IsElasticIndicatorLimit) : (pagerOptions.remove(.IsElasticIndicatorLimit) ?? pagerOptions) + if rand() % 2 == 0 { + pagerBehaviour = .Progressive(skipIntermediteViewControllers: rand() % 2 == 0 , elasticIndicatorLimit: rand() % 2 == 0 ) + } + else { + pagerBehaviour = .Common(skipIntermediteViewControllers: rand() % 2 == 0) + } super.reloadPagerTabStripView() } diff --git a/Example/Example/ReloadExampleViewController.swift b/Example/Example/ReloadExampleViewController.swift index 2d02b92..f295041 100644 --- a/Example/Example/ReloadExampleViewController.swift +++ b/Example/Example/ReloadExampleViewController.swift @@ -70,7 +70,7 @@ class ReloadExampleViewController: UIViewController { return bool ? "YES" : "NO" } - titleLabel.text = "Progressive = \(stringFromBool(pagerTabStripViewController.pagerOptions.contains(.IsProgressiveIndicator))) ElasticLimit = \(stringFromBool(pagerTabStripViewController.pagerOptions.contains(.IsElasticIndicatorLimit)))" + titleLabel.text = "Progressive = \(stringFromBool(pagerTabStripViewController.pagerBehaviour.isProgressiveIndicator)) ElasticLimit = \(stringFromBool(pagerTabStripViewController.pagerBehaviour.isElasticIndicatorLimit))" (navigationItem.titleView as? UILabel)?.text = titleLabel.text navigationItem.titleView?.sizeToFit() diff --git a/Example/Example/SegmentedExampleViewController.swift b/Example/Example/SegmentedExampleViewController.swift index 114ae9e..b07e33d 100644 --- a/Example/Example/SegmentedExampleViewController.swift +++ b/Example/Example/SegmentedExampleViewController.swift @@ -63,7 +63,8 @@ class SegmentedExampleViewController: SegmentedPagerTabStripViewController { @IBAction func reloadTapped(sender: UIBarButtonItem) { isReload = true - pagerOptions = rand() % 2 == 0 ? pagerOptions.union(.SkipIntermediateViewControllers) : (pagerOptions.remove(.SkipIntermediateViewControllers) ?? pagerOptions) + pagerBehaviour = .Common(skipIntermediteViewControllers: rand() % 2 == 0) + pagerBehaviour.skipIntermediateViewControllers reloadPagerTabStripView() } } diff --git a/Example/Example/TwitterExampleViewController.swift b/Example/Example/TwitterExampleViewController.swift index 0094e1b..6eaa76f 100644 --- a/Example/Example/TwitterExampleViewController.swift +++ b/Example/Example/TwitterExampleViewController.swift @@ -28,13 +28,6 @@ import XLPagerTabStrip class TwitterExampleViewController: TwitterPagerTabStripViewController { var isReload = false - override func viewDidLoad() { - super.viewDidLoad() - - pagerOptions = pagerOptions.union(.IsProgressiveIndicator) - pagerOptions = pagerOptions.union(.IsElasticIndicatorLimit) - } - override func childViewControllersForPagerTabStripViewController(pagerTabStripController: PagerTabStripViewController) -> [UIViewController] { let child_1 = TableChildExampleViewController(style: .Plain, itemInfo: "TableView") diff --git a/Example/Example/Youtube/YoutubeExampleViewController.swift b/Example/Example/Youtube/YoutubeExampleViewController.swift index 154ae2e..0549363 100644 --- a/Example/Example/Youtube/YoutubeExampleViewController.swift +++ b/Example/Example/Youtube/YoutubeExampleViewController.swift @@ -57,6 +57,8 @@ class YoutubeExampleViewController: BaseButtonBarPagerTabStripViewController Void in guard changeCurrentIndex == true else { return } oldCell?.iconImage.tintColor = self?.unselectedIconColor diff --git a/Sources/BaseButtonBarPagerTabStripViewController.swift b/Sources/BaseButtonBarPagerTabStripViewController.swift index bd30c8c..6d3c0db 100644 --- a/Sources/BaseButtonBarPagerTabStripViewController.swift +++ b/Sources/BaseButtonBarPagerTabStripViewController.swift @@ -207,7 +207,7 @@ public class BaseButtonBarPagerTabStripViewController 1 { + if animated && pagerBehaviour.skipIntermediateViewControllers && abs(currentIndex - index) > 1 { var tmpViewControllers = viewControllers let currentChildVC = viewControllers[currentIndex] let fromIndex = currentIndex < index ? index - 1 : index + 1 @@ -253,7 +253,7 @@ public class PagerTabStripViewController: UIViewController, UIScrollViewDelegate currentIndex = newCurrentIndex let changeCurrentIndex = newCurrentIndex != oldCurrentIndex - if let progressiveDeledate = self as? PagerTabStripViewControllerIsProgressiveDelegate where pagerOptions.contains(.IsProgressiveIndicator) { + if let progressiveDeledate = self as? PagerTabStripViewControllerIsProgressiveDelegate where pagerBehaviour.isProgressiveIndicator { let (fromIndex, toIndex, scrollPercentage) = progressiveIndicatorData(virtualPage) try! progressiveDeledate.pagerTabStripViewController(self, updateIndicatorFromIndex: fromIndex, toIndex: toIndex, withProgressPercentage: scrollPercentage, indexWasChanged: changeCurrentIndex) @@ -355,7 +355,7 @@ public class PagerTabStripViewController: UIViewController, UIScrollViewDelegate } } } - let scrollPercentage = pagerOptions.contains(.IsElasticIndicatorLimit) ? self.scrollPercentage : ((toIndex < 0 || toIndex >= count) ? 0.0 : self.scrollPercentage) + let scrollPercentage = pagerBehaviour.isElasticIndicatorLimit ? self.scrollPercentage : ((toIndex < 0 || toIndex >= count) ? 0.0 : self.scrollPercentage) return (fromIndex, toIndex, scrollPercentage) }