Пример #1
0
        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);
        }
Пример #2
0
        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());
        }
Пример #3
0
        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: () =>
            {
            });
        }