import UIKit
class SharedClass: NSObject {
static let sharedInstance = SharedClass()
var transparentView:UIView?
var spinner = UIActivityIndicatorView()
// var url = "Your url here"
let ver = "1.0"
let noNetMsg = "No internet connection. Please connect."
// //Show activity indicator
// func activityIndicator(view:UIView) {
//
// DispatchQueue.main.async {
//// if let window = UIApplication.shared.keyWindow {//Conditionally unwrap it instead of force unwrap
//
// //let window = UIApplication.shared.keyWindow! //Thread 1: Fatal error: Unexpectedly found nil while unwrapping an Optional value
// self.transparentView = UIView()
// self.transparentView?.frame = CGRect(x: 0, y: 0, width: view.frame.width, height: view.frame.height)
// self.transparentView?.backgroundColor = UIColor.black.withAlphaComponent(0.4)
// view.addSubview(self.transparentView!)
//
// if UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiom.pad {
//// self.spinner = UIActivityIndicatorView(style: .whiteLarge)
// self.spinner = UIActivityIndicatorView(activityIndicatorStyle: .whiteLarge)
// self.spinner.frame = CGRect(x: 0, y: 0, width: 60, height: 60)
// } else {
//// self.spinner = UIActivityIndicatorView(style: .white)
// self.spinner = UIActivityIndicatorView(activityIndicatorStyle: .white)
// self.spinner.frame = CGRect(x: 0, y: 0, width: 40, height: 40)
// }
// self.spinner.center = view.center
// self.transparentView?.addSubview(self.spinner)
// self.spinner.startAnimating()
//
// DispatchQueue.main.asyncAfter(deadline: .now() + 30.0) {//Stop spinner after 10 Sec's
// self.stopActivityIndicator()
// }
// }
//// }
// }
//Show activity indicator
func activityIndicator(view:UIView) {
DispatchQueue.main.async {
if let window = UIApplication.shared.keyWindow {//Conditionally unwrap it instead of force unwrap
// let window = UIApplication.shared.keyWindow! //Thread 1: Fatal error: Unexpectedly found nil while unwrapping an Optional value
self.transparentView = UIView()
self.transparentView?.frame = CGRect(x: 0, y: 0, width: window.frame.width, height: window.frame.height)
self.transparentView?.backgroundColor = UIColor.black.withAlphaComponent(0.4)
window.addSubview(self.transparentView!)
if UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiom.pad {
// self.spinner = UIActivityIndicatorView(style: .whiteLarge)
self.spinner = UIActivityIndicatorView(activityIndicatorStyle: .whiteLarge)
self.spinner.frame = CGRect(x: 0, y: 0, width: 60, height: 60)
} else {
// self.spinner = UIActivityIndicatorView(style: .white)
self.spinner = UIActivityIndicatorView(activityIndicatorStyle: .white)
self.spinner.frame = CGRect(x: 0, y: 0, width: 40, height: 40)
}
self.spinner.center = view.center
self.transparentView?.addSubview(self.spinner)
self.spinner.startAnimating()
DispatchQueue.main.asyncAfter(deadline: .now() + 30.0) {//Stop spinner after 10 Sec's
self.stopActivityIndicator()
}
}
}
}
//Stop activity indicator
func stopActivityIndicator() {
DispatchQueue.main.async {
self.spinner.stopAnimating()
self.spinner.removeFromSuperview()
self.transparentView?.removeFromSuperview()//Some times getting error here
}
}
/*
//Present alert on top of all windows
func alertWindow(title: String, message: String) {
//Calling
//SharedClass.sharedInstance.alertWindow(title:"", message:"")
DispatchQueue.main.async(execute: {
let window = UIWindow(frame: UIScreen.main.bounds)
window.rootViewController = UIViewController()
// window.windowLevel = UIWindow.Level.alert + 1
window.windowLevel = UIWindowLevelAlert+1
let alert2 = UIAlertController(title: title, message: message, preferredStyle: .alert)
let defaultAction2 = UIAlertAction(title: "OK", style: .default, handler: { action in
})
alert2.addAction(defaultAction2)
window.makeKeyAndVisible()
window.rootViewController?.present(alert2, animated: true, completion: nil)
})
}
*/
//Email validation
func isValidEmail(email: String) -> Bool {
let emailRegex = "[A-Z0-9a-z._%+-]+@[A-Za-z0-9.-]+\\.[A-Za-z]{2,4}"
var valid = NSPredicate(format: "SELF MATCHES %@", emailRegex).evaluate(with: email)
if valid {
valid = !email.contains("Invalid email id")
}
return valid
}
private override init() {
}
}
//Alert function
extension UIViewController {
func showAlert(title: String, msg: String) {
DispatchQueue.main.async {
let alert = UIAlertController(title: title, message: msg, preferredStyle: .alert)
alert.addAction(UIAlertAction(title: "OK", style: .default, handler: nil))
self.present(alert, animated: true, completion: nil)
}
}
}
//Set TF shadow in login VC
extension UITextField {
func TFProperties() {
layer.shadowColor = UIColor(red: 199/255, green: 217/255, blue: 223/255, alpha: 1.0).cgColor
layer.shadowOpacity = 1
layer.shadowOffset = CGSize.zero
layer.shadowRadius = 5
layer.borderColor = UIColor(red: 199/255, green: 217/255, blue: 223/255, alpha: 1.0).cgColor
layer.borderWidth = 1
layer.cornerRadius = 4
}
}
No comments:
Post a Comment