public void Show(string text) { // figure out parent UIView parentView = null; if ((UIApplication.deviceRootViewController != null) && (UIApplication.deviceRootViewController.view != null)) parentView = UIApplication.deviceRootViewController.view; else parentView = UIApplication.SharedApplication().keyWindow; var frame = parentView.bounds; // create view if (_activityView == null) { _activityView = new UIView(frame); _activityView.alpha = 0.8f; _activityView.backgroundColor = UIColor.BlackColor(); _activityIndicator = new UIActivityIndicatorView(UIActivityIndicatorViewStyle.WhiteLarge); _activityIndicator.hidesWhenStopped = false; _activityView.AddSubview(_activityIndicator); _activityLabel = new UILabel(frame); _activityLabel.textAlignment = NSTextAlignment.Center; _activityLabel.backgroundColor = UIColor.ClearColor(); _activityLabel.textColor = UIColor.WhiteColor(); _activityLabel.numberOfLines = 2; _activityView.AddSubview(_activityLabel); } // re-set frames _activityView.frame = frame; var indiFrame = _activityIndicator.frame; indiFrame.x = frame.width / 2 - indiFrame.width / 2; indiFrame.y = frame.height / 2 - indiFrame.height / 2; _activityIndicator.frame = indiFrame; var labelFrame = new Rect(0, indiFrame.yMax, frame.width, indiFrame.height * 2); _activityLabel.frame = labelFrame; _activityLabel.text = text; // add it to parent if (_activityView.superview == null) { _activityIndicator.StartAnimating(); parentView.AddSubview(_activityView); } }