public static UIView FormsToNative(this View formView) { if (formView == null) { return(null); } var renderer = Platform.GetRenderer(formView) ?? Platform.CreateRenderer(formView); Platform.SetRenderer(formView, renderer); var frame = new RectangleF { X = 0, Y = 0, Width = (nfloat)formView.WidthRequest, Height = (nfloat)formView.HeightRequest }; renderer.NativeView.Frame = frame; renderer.NativeView.AutoresizingMask = UIViewAutoresizing.All; renderer.NativeView.ContentMode = UIViewContentMode.ScaleToFill; renderer.Element.Layout(frame.ToRectangle()); var nativeView = renderer.NativeView; nativeView.SetNeedsLayout(); return(nativeView); }
internal static void LayoutToSize(this IView view, double width, double height) { var platformFrame = new RectangleF(0, 0, width, height); if (view.Handler is IPlatformViewHandler viewHandler && viewHandler.PlatformView != null) { viewHandler.PlatformView.Frame = platformFrame; } view.Arrange(platformFrame.ToRectangle()); }
internal static Size LayoutToMeasuredSize(this IView view, double width, double height) { var size = view.Measure(width, height); var platformFrame = new RectangleF(0, 0, size.Width, size.Height); if (view.Handler is IPlatformViewHandler viewHandler && viewHandler.PlatformView != null) { viewHandler.PlatformView.Frame = platformFrame; } view.Arrange(platformFrame.ToRectangle()); return(size); }
public void IF_ShowView(View view, Point point, Action completeAction) { var renderer = Platform.CreateRenderer(view); var size = new CoreGraphics.CGRect(point.X, point.Y, 100, 50); renderer.NativeView.Frame = size; renderer.NativeView.AutoresizingMask = UIViewAutoresizing.All; renderer.NativeView.ContentMode = UIViewContentMode.ScaleToFill; renderer.Element.Layout(size.ToRectangle()); var nativeView = renderer.NativeView; nativeView.SetNeedsLayout(); nativeView.Layer.CornerRadius = 5; var window = GetCurrentWindow(); var coverView = new UIView(new CGRect(0, 0, window.Bounds.Width, window.Bounds.Height)); coverView.BackgroundColor = UIColor.Gray.ColorWithAlpha(0.5f); coverView.AddGestureRecognizer(new UITapGestureRecognizer(() => { UIView.Animate(duration: 0.2, delay: 0, options: UIViewAnimationOptions.CurveEaseInOut, animation: () => { nativeView.Frame = new CGRect(size.X, size.Y, 0, 0); coverView.AddSubview(nativeView); }, completion: () => { coverView.RemoveFromSuperview(); if (completeAction != null) { completeAction(); } }); })); window.AddSubview(coverView); nativeView.Frame = new CGRect(size.X + 50, size.Y + 25, 0, 0); UIView.Animate(duration: 0.1, delay: 0, options: UIViewAnimationOptions.CurveEaseOut, animation: () => { nativeView.Frame = new CGRect(size.X, size.Y, size.Width, 50); coverView.AddSubview(nativeView); }, completion: () => { }); }