title: Loading an "overlay" when running long tasks in iOS
body: <p>What is example for loading overlay in Swift IOS application when do a long tasks. Example for loading data from remote server.
  I googled but not found any answer.</p>
  
  <p>Updated:</p>
  
  <p>Thanks for @Sebastian Dressler this is simple way. I updated my code and it run cool</p>
  
  <pre><code>public class LoadingOverlay{
  
  var overlayView = UIView()
  var activityIndicator = UIActivityIndicatorView()
  
  class var shared: LoadingOverlay {
      struct Static {
          static let instance: LoadingOverlay = LoadingOverlay()
      }
      return Static.instance
  }
  
      public func showOverlay(view: UIView) {
  
          overlayView.frame = CGRectMake(0, 0, 80, 80)
          overlayView.center = view.center
          overlayView.backgroundColor = UIColor(hex: 0x444444, alpha: 0.7)
          overlayView.clipsToBounds = true
          overlayView.layer.cornerRadius = 10
  
          activityIndicator.frame = CGRectMake(0, 0, 40, 40)
          activityIndicator.activityIndicatorViewStyle = .WhiteLarge
          activityIndicator.center = CGPointMake(overlayView.bounds.width / 2, overlayView.bounds.height / 2)
  
          overlayView.addSubview(activityIndicator)
          view.addSubview(overlayView)
  
          activityIndicator.startAnimating()
      }
  
      public func hideOverlayView() {
          activityIndicator.stopAnimating()
          overlayView.removeFromSuperview()
      }
  }
  </code></pre>
  
  <p>let using:</p>
  
  <pre><code>LoadingOverlay.shared.showOverlay(self.view)
  //To to long tasks
  LoadingOverlay.shared.hideOverlayView()
  </code></pre>