diff --git a/Example/GradientLoadingBar/AdvancedExampleViewController.swift b/Example/GradientLoadingBar/AdvancedExampleViewController.swift index 9d21a6a..b833fca 100644 --- a/Example/GradientLoadingBar/AdvancedExampleViewController.swift +++ b/Example/GradientLoadingBar/AdvancedExampleViewController.swift @@ -12,37 +12,64 @@ import GradientLoadingBar class AdvancedExampleViewController: UIViewController { // MARK: - Outlets - @IBOutlet private var customSuperviewButton: BlueBorderedButton! - @IBOutlet private var customColorsButton: BlueBorderedButton! + @IBOutlet private var interfaceBuilderButton: BlueBorderedButton! + @IBOutlet private var programaticallyButton: BlueBorderedButton! + + @IBOutlet private var gradientActivityIndicatorView: GradientActivityIndicatorView! // MARK: - Private properties - private var buttonGradientLoadingBar: GradientLoadingBar? - private var customColorsGradientLoadingBar: GradientLoadingBar? + // swiftlint:disable:next identifier_name + private let programaticallyGradientActivityIndicatorView: GradientActivityIndicatorView = { + let gradientActivityIndicatorView = GradientActivityIndicatorView() + gradientActivityIndicatorView.alpha = 0.0 + gradientActivityIndicatorView.isHidden = true + + // Source: https://color.adobe.com/Pink-Flamingo-color-theme-10343714/ + gradientActivityIndicatorView.gradientColorList = [ + #colorLiteral(red: 0.9490196078, green: 0.3215686275, blue: 0.431372549, alpha: 1), #colorLiteral(red: 0.9450980392, green: 0.4784313725, blue: 0.5921568627, alpha: 1), #colorLiteral(red: 0.9529411765, green: 0.737254902, blue: 0.7843137255, alpha: 1), #colorLiteral(red: 0.4274509804, green: 0.8666666667, blue: 0.9490196078, alpha: 1), #colorLiteral(red: 0.7568627451, green: 0.9411764706, blue: 0.9568627451, alpha: 1) + ] + + return gradientActivityIndicatorView + }() // MARK: - Public methods override func viewDidLoad() { super.viewDidLoad() - buttonGradientLoadingBar = GradientLoadingBar(height: 3.0, - onView: customSuperviewButton) - - // Source: https://color.adobe.com/Pink-Flamingo-color-theme-10343714/ - let gradientColorList = [ - #colorLiteral(red: 0.9490196078, green: 0.3215686275, blue: 0.431372549, alpha: 1), #colorLiteral(red: 0.9450980392, green: 0.4784313725, blue: 0.5921568627, alpha: 1), #colorLiteral(red: 0.9529411765, green: 0.737254902, blue: 0.7843137255, alpha: 1), #colorLiteral(red: 0.4274509804, green: 0.8666666667, blue: 0.9490196078, alpha: 1), #colorLiteral(red: 0.7568627451, green: 0.9411764706, blue: 0.9568627451, alpha: 1) - ] - customColorsGradientLoadingBar = BottomGradientLoadingBar(height: 3.0, - gradientColorList: gradientColorList, - onView: customColorsButton) + setupCustomColorsGradientActivityIndicatorView() } - @IBAction func customSuperviewButtonTouchUpInside(_: Any) { - buttonGradientLoadingBar?.toggle() + @IBAction func interfaceBuilderButtonTouchUpInside(_: Any) { + if gradientActivityIndicatorView.isHidden { + gradientActivityIndicatorView.fadeIn() + } else { + gradientActivityIndicatorView.fadeOut() + } } - @IBAction func customGradientColorsButtonTouchUpInside(_: Any) { - customColorsGradientLoadingBar?.toggle() + @IBAction func programaticallyButtonTouchUpInside(_: Any) { + if programaticallyGradientActivityIndicatorView.isHidden { + programaticallyGradientActivityIndicatorView.fadeIn() + } else { + programaticallyGradientActivityIndicatorView.fadeOut() + } + } + + // MARK: - Private methods + + func setupCustomColorsGradientActivityIndicatorView() { + programaticallyGradientActivityIndicatorView.translatesAutoresizingMaskIntoConstraints = false + programaticallyButton.addSubview(programaticallyGradientActivityIndicatorView) + + NSLayoutConstraint.activate([ + programaticallyGradientActivityIndicatorView.leftAnchor.constraint(equalTo: programaticallyButton.leftAnchor), + programaticallyGradientActivityIndicatorView.rightAnchor.constraint(equalTo: programaticallyButton.rightAnchor), + + programaticallyGradientActivityIndicatorView.bottomAnchor.constraint(equalTo: programaticallyButton.bottomAnchor), + programaticallyGradientActivityIndicatorView.heightAnchor.constraint(equalToConstant: 3.0) + ]) } } diff --git a/Example/GradientLoadingBar/Base.lproj/Main.storyboard b/Example/GradientLoadingBar/Base.lproj/Main.storyboard index bbf9f36..71e7026 100644 --- a/Example/GradientLoadingBar/Base.lproj/Main.storyboard +++ b/Example/GradientLoadingBar/Base.lproj/Main.storyboard @@ -1,12 +1,11 @@ - + - - + @@ -38,10 +37,10 @@ - + - - - - + + + + + + + + + + + - - + + + + - + - + - - + + + diff --git a/Example/GradientLoadingBar/BasicExampleViewController.swift b/Example/GradientLoadingBar/BasicExampleViewController.swift index d160ac7..229d87e 100644 --- a/Example/GradientLoadingBar/BasicExampleViewController.swift +++ b/Example/GradientLoadingBar/BasicExampleViewController.swift @@ -17,11 +17,6 @@ class BasicExampleViewController: UIViewController { gradientLoadingBar.show() } - @IBAction func toggleButtonTouchUpInside(_: Any) { - let gradientLoadingBar = GradientLoadingBar.shared - gradientLoadingBar.toggle() - } - @IBAction func hideButtonTouchUpInside(_: Any) { let gradientLoadingBar = GradientLoadingBar.shared gradientLoadingBar.hide() diff --git a/Example/GradientLoadingBar/NavigationBarExampleViewController.swift b/Example/GradientLoadingBar/NavigationBarExampleViewController.swift index ff97aa8..aaff394 100644 --- a/Example/GradientLoadingBar/NavigationBarExampleViewController.swift +++ b/Example/GradientLoadingBar/NavigationBarExampleViewController.swift @@ -16,26 +16,44 @@ class NavigationBarExampleViewController: UIViewController { // MARK: - Private properties - private var gradientLoadingBar: BottomGradientLoadingBar? + private var gradientProgressIndicatorView = GradientActivityIndicatorView() // MARK: - Public methods override func viewDidLoad() { super.viewDidLoad() - gradientLoadingBar = BottomGradientLoadingBar(onView: navigationBar) + setupGradientProgressIndicatorView() } @IBAction func showButtonTouchUpInside(_: Any) { - gradientLoadingBar?.show() + gradientProgressIndicatorView.fadeIn() } @IBAction func toggleButtonTouchUpInside(_: Any) { - gradientLoadingBar?.toggle() + // gradientLoadingBar?.toggle() } @IBAction func hideButtonTouchUpInside(_: Any) { - gradientLoadingBar?.hide() + gradientProgressIndicatorView.fadeOut() + } + + // MARK: - Private methods + + private func setupGradientProgressIndicatorView() { + gradientProgressIndicatorView.alpha = 0.0 + gradientProgressIndicatorView.isHidden = true + + gradientProgressIndicatorView.translatesAutoresizingMaskIntoConstraints = false + navigationBar.addSubview(gradientProgressIndicatorView) + + NSLayoutConstraint.activate([ + gradientProgressIndicatorView.leftAnchor.constraint(equalTo: navigationBar.leftAnchor), + gradientProgressIndicatorView.rightAnchor.constraint(equalTo: navigationBar.rightAnchor), + + gradientProgressIndicatorView.bottomAnchor.constraint(equalTo: navigationBar.bottomAnchor), + gradientProgressIndicatorView.heightAnchor.constraint(equalToConstant: 3.0) + ]) } } diff --git a/Example/GradientLoadingBar/SafeAreaExampleViewController.swift b/Example/GradientLoadingBar/SafeAreaExampleViewController.swift index d508fd5..d70478d 100644 --- a/Example/GradientLoadingBar/SafeAreaExampleViewController.swift +++ b/Example/GradientLoadingBar/SafeAreaExampleViewController.swift @@ -21,10 +21,6 @@ class SafeAreaExampleViewController: UIViewController { safeAreaGradientLoadingBar.show() } - @IBAction func toggleButtonTouchUpInside(_: Any) { - safeAreaGradientLoadingBar.toggle() - } - @IBAction func hideButtonTouchUpInside(_: Any) { safeAreaGradientLoadingBar.hide() }