From d776ba9c6ec94d6622e1f759c112fd2334b7fb8b Mon Sep 17 00:00:00 2001 From: Nicholas Tay Date: Mon, 21 Mar 2022 19:36:43 +1100 Subject: Loading overlay to custom class + add to coordinator Just an idea I had, since it was quite messy that a TableViewController was handling all that. Instead now it should be reusable through the ForayCoordinator itself, which means e.g. on details screen, we can show the loading overlay. --- foray/ForayLoadingOverlay.swift | 37 +++++++++++++++++++++++++++++++++++++ 1 file changed, 37 insertions(+) create mode 100644 foray/ForayLoadingOverlay.swift (limited to 'foray/ForayLoadingOverlay.swift') diff --git a/foray/ForayLoadingOverlay.swift b/foray/ForayLoadingOverlay.swift new file mode 100644 index 0000000..1aa6260 --- /dev/null +++ b/foray/ForayLoadingOverlay.swift @@ -0,0 +1,37 @@ +// +// ForayLoadingOverlay.swift +// foray +// +// Created by Nicholas Tay on 21/3/2022. +// + +import UIKit + +class ForayLoadingOverlay { + + var viewController: UIViewController + + let loadingIndicator: UIActivityIndicatorView = { + let aiv = UIActivityIndicatorView(frame: CGRect(x: 10, y: 5, width: 50, height: 50)) + aiv.hidesWhenStopped = true + aiv.style = UIActivityIndicatorView.Style.medium + aiv.startAnimating() + return aiv + }() + + let alert: UIAlertController = UIAlertController(title: nil, message: "Grabbing data...", preferredStyle: .alert) + + init(viewController: UIViewController) { + self.viewController = viewController + alert.view.addSubview(self.loadingIndicator) + } + + func show() { + viewController.present(alert, animated: true) + } + + func hide() { + viewController.dismiss(animated: false) + } + +} -- cgit