public void SetAngel(IList <ActionButtonView> Lst, float radius, int Degress, int Duration)
        {
            var degrees = Degress / Lst.Count;
            int i       = 0;

            foreach (var item in Lst)
            {
                var hOffset = radius * Math.Cos(i * degrees * 3.14 / 180);
                var vOffset = radius * Math.Sin(i * degrees * 3.14 / 180);
                var btn     = new CustomFloatingactionbutton(item);
                btn.TranslatesAutoresizingMaskIntoConstraints = false;
                btn.Alpha = 0;
                viewController.InsertSubview(btn, 1);
                btn.CenterXAnchor.ConstraintGreaterThanOrEqualTo(MainView.CenterXAnchor, 0).Active = true;
                btn.CenterYAnchor.ConstraintGreaterThanOrEqualTo(MainView.CenterYAnchor, 0).Active = true;
                nfloat xpos = 0;

                if (ActionOrientation == StackActionOrientation.Left)
                {
                    xpos = (nfloat)hOffset;
                }
                else
                {
                    xpos = -(nfloat)hOffset;
                }

                UIView.Animate((float)Duration / 1000, 0, UIViewAnimationOptions.TransitionFlipFromBottom,
                               () =>
                {
                    btn.Transform = CGAffineTransform.MakeTranslation(xpos, -1 * (nfloat)vOffset);
                    btn.Alpha     = 1;
                },
                               () => { });
                i++;
            }
        }
        public async Task <bool> ShowSubView(int Duration = 150)
        {
            if (!IsSubShowing && !isProgress && IsShowing)
            {
                if (SubViews.Count > 0)
                {
                    IsSubShowing    = true;
                    isProgress      = true;
                    lastOpeningType = OpeningType;
                    if (OpeningType != ActionOpeningType.Circle)
                    {
                        foreach (var item in SubViews)
                        {
                            if (OpeningType == ActionOpeningType.HorizontalLeft || OpeningType == ActionOpeningType.HorizontalRight)
                            {
                                if (ActionOrientation == StackActionOrientation.Right)
                                {
                                    LeftConstraint.Constant -= MainView.Spacing + (nfloat)MainButtonView.HeightRequest;
                                }
                                else if (ActionOrientation == StackActionOrientation.Center)
                                {
                                    LeftConstraint.Constant -= (MainView.Spacing + (nfloat)MainButtonView.HeightRequest) / 2;
                                }
                            }

                            var btn = new CustomFloatingactionbutton(item);


                            if (OpeningType == ActionOpeningType.VerticalTop || OpeningType == ActionOpeningType.HorizontalLeft)
                            {
                                MainView.InsertArrangedSubview(btn, 0);
                            }
                            else
                            {
                                MainView.AddArrangedSubview(btn);
                            }

                            var point = btn.Layer.AnchorPoint;
                            UIView.Animate((float)Duration / 1000, 0, UIViewAnimationOptions.TransitionNone,
                                           () =>
                            {
                                switch (OpeningType)
                                {
                                case ActionOpeningType.HorizontalLeft:
                                    btn.Transform = CGAffineTransform.MakeTranslation(-subViewSpacing, 0);
                                    break;

                                case ActionOpeningType.HorizontalRight:
                                    btn.Transform = CGAffineTransform.MakeTranslation(+subViewSpacing, 0);
                                    break;

                                case ActionOpeningType.VerticalTop:
                                    btn.Transform = CGAffineTransform.MakeTranslation(0, -subViewSpacing);
                                    break;

                                case ActionOpeningType.VerticalBottom:
                                    btn.Transform = CGAffineTransform.MakeTranslation(0, +subViewSpacing);
                                    break;

                                default:
                                    break;
                                }
                            },
                                           () => { });
                            await Task.Delay(Duration);

                            UIView.Animate((float)Duration / 1000, 0, UIViewAnimationOptions.TransitionNone,
                                           () =>
                            {
                                btn.Transform = CGAffineTransform.MakeTranslation(0, 0);
                            },
                                           () => { });
                            await Task.Delay(Duration);
                        }
                    }
                    else
                    {
                        if (ActionOrientation == StackActionOrientation.Center)
                        {
                            if (SubViews.Count == 5)
                            {
                                SetAngel(SubViews, CircleAngle, 225, Duration);
                            }
                            else if (SubViews.Count == 4)
                            {
                                SetAngel(SubViews, CircleAngle, 240, Duration);
                            }
                            else if (SubViews.Count == 6)
                            {
                                SetAngel(SubViews, CircleAngle, 220, Duration);
                            }
                            else if (SubViews.Count == 3)
                            {
                                SetAngel(SubViews, CircleAngle, 270, Duration);
                            }
                            else if (SubViews.Count == 2)
                            {
                                SetAngel(SubViews, CircleAngle, 360, Duration);
                            }
                            else if (SubViews.Count >= 7)
                            {
                                SetAngel(SubViews, CircleAngle, 215, Duration);
                            }
                        }
                        else
                        {
                            SetAngel(SubViews, CircleAngle, 110, Duration);
                        }
                    }

                    isProgress = false;
                }
            }


            return(true);
        }