public void ShowFromViewController(UIViewController viewController, JTSImageViewControllerTransition transition) { this.Transition = transition; StartingInfo.StatusBarHiddenPriorToPresentation = UIApplication.SharedApplication.StatusBarHidden; StartingInfo.StatusBarStylePriorToPresentation = UIApplication.SharedApplication.StatusBarStyle; if (Mode == JTSImageViewControllerMode.Image) { if (this.Transition == JTSImageViewControllerTransition.FromOffscreen) { ShowImageViewerByScalingDownFromOffscreenPositionWithViewController (viewController); } else { ShowImageViewerByExpandingFromOriginalPositionFromViewController (viewController); } } else if (Mode == JTSImageViewControllerMode.AltText) { ShowAltTextFromViewController (viewController); } }
// Public Methods public async Task DownloadThenShowFromViewController( UIViewController viewController, JTSImageViewControllerTransition transition, UIView fromView, CancellationToken cancel, int progressHeight = 0, UIActivityIndicatorView spinner = null ) { bool newSpinner = false; if (spinner == null) { newSpinner = true; spinner = new UIActivityIndicatorView (UIActivityIndicatorViewStyle.WhiteLarge) { BackgroundColor = UIColor.Black.ColorWithAlpha (.5f) }; spinner.Layer.CornerRadius = 5.0f; fromView.AddSubview (spinner); spinner.Frame = new RectangleF( fromView.Frame.X, fromView.Frame.Y, fromView.Frame.Width, progressHeight == 0 ? fromView.Frame.Height : progressHeight ); } spinner.StartAnimating (); spinner.Hidden = false; Image = await SetupImageAndDownloadIfNecessary (ImageInfo); spinner.StopAnimating (); spinner.Hidden = true; if (newSpinner) { spinner.RemoveFromSuperview (); } if (cancel.IsCancellationRequested) return; ImageInfo.Image = Image; ShowFromViewController (viewController, transition); UpdateInterfaceWithImage (Image); }