From a36dbf142ebc185f8f14d1780ac14e20b18d59e4 Mon Sep 17 00:00:00 2001 From: Bruno Muniz Azevedo Filho <bruno@elixxir.io> Date: Mon, 12 Dec 2022 16:41:08 -0300 Subject: [PATCH] Reusing code from gradient --- Sources/LaunchFeature/LaunchController.swift | 5 +++ Sources/LaunchFeature/LaunchView.swift | 13 ++----- .../OnboardingStartController.swift | 24 +++++-------- .../OnboardingSuccessController.swift | 14 +------- .../Views/OnboardingStartView.swift | 3 ++ .../Views/OnboardingSuccessView.swift | 3 ++ .../RestoreSuccessController.swift | 15 +------- .../Views/RestoreSuccessView.swift | 36 +++++++++---------- Sources/Shared/Extensions/Gradient.swift | 16 +++++++++ .../TermsConditionsController.swift | 12 +------ .../TermsFeature/TermsConditionsView.swift | 12 +++---- 11 files changed, 63 insertions(+), 90 deletions(-) create mode 100644 Sources/Shared/Extensions/Gradient.swift diff --git a/Sources/LaunchFeature/LaunchController.swift b/Sources/LaunchFeature/LaunchController.swift index 8a9b1071..e8e1911e 100644 --- a/Sources/LaunchFeature/LaunchController.swift +++ b/Sources/LaunchFeature/LaunchController.swift @@ -20,6 +20,11 @@ public final class LaunchController: UIViewController { view = screenView } + public override func viewDidLayoutSubviews() { + super.viewDidLayoutSubviews() + screenView.gradientLayer.frame = screenView.bounds + } + public override func viewDidLoad() { super.viewDidLoad() diff --git a/Sources/LaunchFeature/LaunchView.swift b/Sources/LaunchFeature/LaunchView.swift index 40f6fb44..7fe9ebaf 100644 --- a/Sources/LaunchFeature/LaunchView.swift +++ b/Sources/LaunchFeature/LaunchView.swift @@ -3,26 +3,19 @@ import AppResources final class LaunchView: UIView { let imageView = UIImageView() - let gradientLayer = CAGradientLayer() + let gradientLayer = CAGradientLayer.xxGradient() init() { super.init(frame: .zero) - gradientLayer.colors = [ - UIColor(red: 122/255, green: 235/255, blue: 239/255, alpha: 1).cgColor, - UIColor(red: 56/255, green: 204/255, blue: 232/255, alpha: 1).cgColor, - UIColor(red: 63/255, green: 186/255, blue: 253/255, alpha: 1).cgColor, - UIColor(red: 98/255, green: 163/255, blue: 255/255, alpha: 1).cgColor - ] - gradientLayer.startPoint = CGPoint(x: 1, y: 0) - gradientLayer.endPoint = CGPoint(x: 0, y: 1) - layer.insertSublayer(gradientLayer, at: 0) imageView.image = Asset.splash.image imageView.contentMode = .scaleAspectFit backgroundColor = Asset.neutralWhite.color addSubview(imageView) + layer.insertSublayer(gradientLayer, at: 0) + imageView.snp.makeConstraints { $0.center.equalToSuperview() $0.left.equalToSuperview().offset(100) diff --git a/Sources/OnboardingFeature/Controllers/OnboardingStartController.swift b/Sources/OnboardingFeature/Controllers/OnboardingStartController.swift index cfa8dad0..ba4759a6 100644 --- a/Sources/OnboardingFeature/Controllers/OnboardingStartController.swift +++ b/Sources/OnboardingFeature/Controllers/OnboardingStartController.swift @@ -17,25 +17,13 @@ public final class OnboardingStartController: UIViewController { public override func viewWillAppear(_ animated: Bool) { super.viewWillAppear(animated) navigationItem.backButtonTitle = "" - navigationController?.navigationBar.customize(translucent: true) + navigationController?.navigationBar + .customize(translucent: true) } public override func viewDidLayoutSubviews() { super.viewDidLayoutSubviews() - - let gradient = CAGradientLayer() - gradient.colors = [ - UIColor(red: 122/255, green: 235/255, blue: 239/255, alpha: 1).cgColor, - UIColor(red: 56/255, green: 204/255, blue: 232/255, alpha: 1).cgColor, - UIColor(red: 63/255, green: 186/255, blue: 253/255, alpha: 1).cgColor, - UIColor(red: 98/255, green: 163/255, blue: 255/255, alpha: 1).cgColor - ] - - gradient.startPoint = CGPoint(x: 0, y: 0) - gradient.endPoint = CGPoint(x: 1, y: 1) - - gradient.frame = screenView.bounds - screenView.layer.insertSublayer(gradient, at: 0) + screenView.gradientLayer.frame = screenView.bounds } public override func viewDidLoad() { @@ -45,7 +33,11 @@ public final class OnboardingStartController: UIViewController { .startButton .publisher(for: .touchUpInside) .sink { [unowned self] in - navigator.perform(PresentTermsAndConditions(replacing: false, on: navigationController!)) + navigator.perform( + PresentTermsAndConditions( + replacing: false, + on: navigationController! + )) }.store(in: &cancellables) } } diff --git a/Sources/OnboardingFeature/Controllers/OnboardingSuccessController.swift b/Sources/OnboardingFeature/Controllers/OnboardingSuccessController.swift index cdf7a999..b0d3b01d 100644 --- a/Sources/OnboardingFeature/Controllers/OnboardingSuccessController.swift +++ b/Sources/OnboardingFeature/Controllers/OnboardingSuccessController.swift @@ -26,19 +26,7 @@ public final class OnboardingSuccessController: UIViewController { public override func viewDidLayoutSubviews() { super.viewDidLayoutSubviews() - - let gradient = CAGradientLayer() - gradient.colors = [ - UIColor(red: 122/255, green: 235/255, blue: 239/255, alpha: 1).cgColor, - UIColor(red: 56/255, green: 204/255, blue: 232/255, alpha: 1).cgColor, - UIColor(red: 63/255, green: 186/255, blue: 253/255, alpha: 1).cgColor, - UIColor(red: 98/255, green: 163/255, blue: 255/255, alpha: 1).cgColor - ] - - gradient.startPoint = CGPoint(x: 0, y: 0) - gradient.endPoint = CGPoint(x: 1, y: 1) - gradient.frame = screenView.bounds - screenView.layer.insertSublayer(gradient, at: 0) + screenView.gradientLayer.frame = screenView.bounds } public override func viewWillAppear(_ animated: Bool) { diff --git a/Sources/OnboardingFeature/Views/OnboardingStartView.swift b/Sources/OnboardingFeature/Views/OnboardingStartView.swift index b0864bb3..fffc54b3 100644 --- a/Sources/OnboardingFeature/Views/OnboardingStartView.swift +++ b/Sources/OnboardingFeature/Views/OnboardingStartView.swift @@ -8,6 +8,7 @@ final class OnboardingStartView: UIView { let logoImageView = UIImageView() let startButton = CapsuleButton() let bottomImageView = UIImageView() + let gradientLayer = CAGradientLayer.xxGradient() init() { super.init(frame: .zero) @@ -34,6 +35,8 @@ final class OnboardingStartView: UIView { addSubview(logoImageView) addSubview(stackView) + layer.insertSublayer(gradientLayer, at: 0) + logoImageView.snp.makeConstraints { $0.top.equalToSuperview().offset(130) $0.centerX.equalToSuperview() diff --git a/Sources/OnboardingFeature/Views/OnboardingSuccessView.swift b/Sources/OnboardingFeature/Views/OnboardingSuccessView.swift index c539521c..bc3da3b6 100644 --- a/Sources/OnboardingFeature/Views/OnboardingSuccessView.swift +++ b/Sources/OnboardingFeature/Views/OnboardingSuccessView.swift @@ -6,6 +6,7 @@ final class OnboardingSuccessView: UIView { let titleLabel = UILabel() let imageView = UIImageView() let nextButton = CapsuleButton() + let gradientLayer = CAGradientLayer.xxGradient() init() { super.init(frame: .zero) @@ -15,6 +16,8 @@ final class OnboardingSuccessView: UIView { addSubview(titleLabel) addSubview(nextButton) + layer.insertSublayer(gradientLayer, at: 0) + imageView.snp.makeConstraints { $0.top.equalTo(safeAreaLayoutGuide).offset(40) $0.left.equalToSuperview().offset(40) diff --git a/Sources/RestoreFeature/Controllers/RestoreSuccessController.swift b/Sources/RestoreFeature/Controllers/RestoreSuccessController.swift index cad61bee..adb28a96 100644 --- a/Sources/RestoreFeature/Controllers/RestoreSuccessController.swift +++ b/Sources/RestoreFeature/Controllers/RestoreSuccessController.swift @@ -29,20 +29,7 @@ public final class RestoreSuccessController: UIViewController { public override func viewDidLayoutSubviews() { super.viewDidLayoutSubviews() - - let gradient = CAGradientLayer() - gradient.colors = [ - UIColor(red: 122/255, green: 235/255, blue: 239/255, alpha: 1).cgColor, - UIColor(red: 56/255, green: 204/255, blue: 232/255, alpha: 1).cgColor, - UIColor(red: 63/255, green: 186/255, blue: 253/255, alpha: 1).cgColor, - UIColor(red: 98/255, green: 163/255, blue: 255/255, alpha: 1).cgColor - ] - - gradient.startPoint = CGPoint(x: 0, y: 0) - gradient.endPoint = CGPoint(x: 1, y: 1) - - gradient.frame = screenView.bounds - screenView.layer.insertSublayer(gradient, at: 0) + screenView.gradientLayer.frame = screenView.bounds } private func setupBindings() { diff --git a/Sources/RestoreFeature/Views/RestoreSuccessView.swift b/Sources/RestoreFeature/Views/RestoreSuccessView.swift index e8551f0d..bfaac5b4 100644 --- a/Sources/RestoreFeature/Views/RestoreSuccessView.swift +++ b/Sources/RestoreFeature/Views/RestoreSuccessView.swift @@ -7,6 +7,7 @@ final class RestoreSuccessView: UIView { let titleLabel = UILabel() let subtitleLabel = UILabel() let nextButton = CapsuleButton() + let gradientLayer = CAGradientLayer.xxGradient() init() { super.init(frame: .zero) @@ -24,27 +25,26 @@ final class RestoreSuccessView: UIView { addSubview(subtitleLabel) addSubview(nextButton) - iconImageView.snp.makeConstraints { make in - make.top.equalTo(safeAreaLayoutGuide).offset(40) - make.left.equalToSuperview().offset(40) - } + layer.insertSublayer(gradientLayer, at: 0) - titleLabel.snp.makeConstraints { make in - make.top.equalTo(iconImageView.snp.bottom).offset(40) - make.left.equalToSuperview().offset(40) - make.right.equalToSuperview().offset(-90) + iconImageView.snp.makeConstraints { + $0.top.equalTo(safeAreaLayoutGuide).offset(40) + $0.left.equalToSuperview().offset(40) } - - subtitleLabel.snp.makeConstraints { make in - make.top.equalTo(titleLabel.snp.bottom).offset(30) - make.left.equalToSuperview().offset(40) - make.right.equalToSuperview().offset(-90) + titleLabel.snp.makeConstraints { + $0.top.equalTo(iconImageView.snp.bottom).offset(40) + $0.left.equalToSuperview().offset(40) + $0.right.equalToSuperview().offset(-90) } - - nextButton.snp.makeConstraints { make in - make.left.equalToSuperview().offset(24) - make.right.equalToSuperview().offset(-24) - make.bottom.equalToSuperview().offset(-60) + subtitleLabel.snp.makeConstraints { + $0.top.equalTo(titleLabel.snp.bottom).offset(30) + $0.left.equalToSuperview().offset(40) + $0.right.equalToSuperview().offset(-90) + } + nextButton.snp.makeConstraints { + $0.left.equalToSuperview().offset(24) + $0.right.equalToSuperview().offset(-24) + $0.bottom.equalToSuperview().offset(-60) } setTitle(Localized.AccountRestore.Success.title) diff --git a/Sources/Shared/Extensions/Gradient.swift b/Sources/Shared/Extensions/Gradient.swift new file mode 100644 index 00000000..2587215c --- /dev/null +++ b/Sources/Shared/Extensions/Gradient.swift @@ -0,0 +1,16 @@ +import UIKit + +public extension CAGradientLayer { + static func xxGradient() -> CAGradientLayer { + let gradient = CAGradientLayer() + gradient.colors = [ + UIColor(red: 122/255, green: 235/255, blue: 239/255, alpha: 1).cgColor, + UIColor(red: 56/255, green: 204/255, blue: 232/255, alpha: 1).cgColor, + UIColor(red: 63/255, green: 186/255, blue: 253/255, alpha: 1).cgColor, + UIColor(red: 98/255, green: 163/255, blue: 255/255, alpha: 1).cgColor + ] + gradient.startPoint = CGPoint(x: 0, y: 0) + gradient.endPoint = CGPoint(x: 1, y: 1) + return gradient + } +} diff --git a/Sources/TermsFeature/TermsConditionsController.swift b/Sources/TermsFeature/TermsConditionsController.swift index 708e8d33..84fd76d0 100644 --- a/Sources/TermsFeature/TermsConditionsController.swift +++ b/Sources/TermsFeature/TermsConditionsController.swift @@ -31,17 +31,7 @@ public final class TermsConditionsController: UIViewController { public override func viewDidLayoutSubviews() { super.viewDidLayoutSubviews() - let gradient = CAGradientLayer() - gradient.colors = [ - UIColor(red: 122/255, green: 235/255, blue: 239/255, alpha: 1).cgColor, - UIColor(red: 56/255, green: 204/255, blue: 232/255, alpha: 1).cgColor, - UIColor(red: 63/255, green: 186/255, blue: 253/255, alpha: 1).cgColor, - UIColor(red: 98/255, green: 163/255, blue: 255/255, alpha: 1).cgColor - ] - gradient.startPoint = CGPoint(x: 0, y: 0) - gradient.endPoint = CGPoint(x: 1, y: 1) - gradient.frame = screenView.bounds - screenView.layer.insertSublayer(gradient, at: 0) + screenView.gradientLayer.frame = screenView.bounds } public override func viewDidLoad() { diff --git a/Sources/TermsFeature/TermsConditionsView.swift b/Sources/TermsFeature/TermsConditionsView.swift index e3dd19a9..e04670c3 100644 --- a/Sources/TermsFeature/TermsConditionsView.swift +++ b/Sources/TermsFeature/TermsConditionsView.swift @@ -7,6 +7,7 @@ final class TermsConditionsView: UIView { let logoImageView = UIImageView() let showTermsButton = CapsuleButton() let radioComponent = RadioTextComponent() + let gradientLayer = CAGradientLayer.xxGradient() init() { super.init(frame: .zero) @@ -25,33 +26,28 @@ final class TermsConditionsView: UIView { addSubview(radioComponent) addSubview(showTermsButton) - setupConstraints() - } - - required init?(coder: NSCoder) { nil } + layer.insertSublayer(gradientLayer, at: 0) - private func setupConstraints() { logoImageView.snp.makeConstraints { $0.top.equalTo(safeAreaLayoutGuide).offset(30) $0.centerX.equalToSuperview() } - radioComponent.snp.makeConstraints { $0.left.equalToSuperview().offset(40) $0.right.equalToSuperview().offset(-40) $0.bottom.equalTo(nextButton.snp.top).offset(-20) } - nextButton.snp.makeConstraints { $0.left.equalToSuperview().offset(40) $0.right.equalToSuperview().offset(-40) $0.bottom.equalTo(showTermsButton.snp.top).offset(-10) } - showTermsButton.snp.makeConstraints { $0.left.equalToSuperview().offset(40) $0.right.equalToSuperview().offset(-40) $0.bottom.equalTo(safeAreaLayoutGuide).offset(-40) } } + + required init?(coder: NSCoder) { nil } } -- GitLab