protected override void Dispose(bool disposing) { if (disposing) { this.vMain = null; } base.Dispose(disposing); }
private void HandlePopupRequested(object sender, EventArgs e) { if (vMain == null) { vMain = new UIViewFullscreen(); } vMain.SetImage(this.Control.Image); vMain.Show(); }
private void OnRequestPhotoViewer(BaseContentCardViewModel viewModel) { var index = ViewModel.CardViewModels.IndexOf(viewModel); var cell = _tableController.TableView.CellAt(NSIndexPath.FromRowSection(index, 0)) as DefaultCell; var startFrame = cell.ConvertRectToView(cell.ImageRect, View); var imageView = new UIImageView(startFrame); imageView.ContentMode = UIViewContentMode.ScaleAspectFill; imageView.Image = cell.Image; cell.ImageHidden = true; View.AddSubview(imageView); _fullScreenView = new UIViewFullscreen(); _fullScreenView.WillHide += (object sender, EventArgs e) => { imageView.Hidden = false; // Scale the image back to the cell UIView.AnimateNotify(_fullScreenView.AnimationDuration / 2, () => { imageView.Frame = startFrame; }, (isComplete) => { imageView.RemoveFromSuperview(); imageView = null; cell.ImageHidden = false; }); }; _fullScreenView.SetImage(cell.Image); _fullScreenView.Show(); // Set final Rect Animation var finalFrame = _fullScreenView.ConvertRectToView(_fullScreenView.ImageFrame, View); UIView.AnimateNotify(_fullScreenView.AnimationDuration / 2, () => { imageView.Frame = finalFrame; }, async(isComplete) => { await Task.Delay(500); imageView.Hidden = true; }); }
private void OnRequestPhotoViewer (BaseContentCardViewModel viewModel) { var index = ViewModel.CardViewModels.IndexOf (viewModel); var cell = _tableController.TableView.CellAt (NSIndexPath.FromRowSection (index, 0)) as DefaultCell; var startFrame = cell.ConvertRectToView (cell.ImageRect, View); var imageView = new UIImageView (startFrame); imageView.ContentMode = UIViewContentMode.ScaleAspectFill; imageView.Image = cell.Image; cell.ImageHidden = true; View.AddSubview (imageView); _fullScreenView = new UIViewFullscreen (); _fullScreenView.WillHide += (object sender, EventArgs e) => { imageView.Hidden = false; // Scale the image back to the cell UIView.AnimateNotify(_fullScreenView.AnimationDuration/2, () => { imageView.Frame = startFrame; }, (isComplete) => { imageView.RemoveFromSuperview(); imageView = null; cell.ImageHidden = false; }); }; _fullScreenView.SetImage(cell.Image); _fullScreenView.Show(); // Set final Rect Animation var finalFrame = _fullScreenView.ConvertRectToView(_fullScreenView.ImageFrame, View); UIView.AnimateNotify (_fullScreenView.AnimationDuration/2, () => { imageView.Frame = finalFrame; }, async (isComplete) => { await Task.Delay(500); imageView.Hidden = true; }); }