Пример #1
0
        private void UpdateViewConstraints(bool animated)
        {
            _isAnimating = animated;
            var animationFinish = new Action(() =>
            {
                _isAnimating = false;
                if (AnimationFinished != null)
                {
                    AnimationFinished(this, EventArgs.Empty);
                }
            });

            switch (CurrentMode)
            {
            case OrgEventViewMode.Combo:
                VenuesAndShowsTableView.RemoveConstraint(TableHeightConstraint);

                if (!View.Constraints.Contains(SearchTableTopConstraint))
                {
                    View.AddConstraint(SearchTableTopConstraint);
                }

                if (!MapPanel.Constraints.Contains(MapHeightConstraint))
                {
                    MapPanel.AddConstraint(MapHeightConstraint);
                }

                View.UpdateConstraint(
                    () => MapHeightConstraint.Constant = ScreenUtil.GetGoldenRatio(View.Frame.Height),
                    animated, animationFinish);

                MapToListSettingsConstraint.Constant   = 0;
                ListSettingsHeightConstraint.Constant  = 0;
                ListSettingsToTableConstraint.Constant = 0;
                break;

            case OrgEventViewMode.Map:
                MapPanel.RemoveConstraint(MapHeightConstraint);
                View.RemoveConstraint(SearchTableTopConstraint);

                if (!VenuesAndShowsTableView.Constraints.Contains(TableHeightConstraint))
                {
                    VenuesAndShowsTableView.AddConstraint(TableHeightConstraint);
                }

                View.UpdateConstraint(
                    () => TableHeightConstraint.Constant = 0,
                    animated, animationFinish);

                MapToListSettingsConstraint.Constant   = 0;
                ListSettingsHeightConstraint.Constant  = 0;
                ListSettingsToTableConstraint.Constant = 0;
                break;

            case OrgEventViewMode.List:
                VenuesAndShowsTableView.RemoveConstraint(TableHeightConstraint);

                if (!View.Constraints.Contains(SearchTableTopConstraint))
                {
                    View.AddConstraint(SearchTableTopConstraint);
                }

                if (!MapPanel.Constraints.Contains(MapHeightConstraint))
                {
                    MapPanel.AddConstraint(MapHeightConstraint);
                }

                View.UpdateConstraint(
                    () =>
                {
                    MapHeightConstraint.Constant = 0;

                    if (IsInSearch)
                    {
                        MapToListSettingsConstraint.Constant   = UIConstants.StatusBarHeight;
                        ListSettingsHeightConstraint.Constant  = 0;
                        ListSettingsToTableConstraint.Constant = 0;
                    }
                    else
                    {
                        MapToListSettingsConstraint.Constant   = NavBarManager.NavBarHeight;
                        ListSettingsHeightConstraint.Constant  = ListSettingsView.DefaultHeight;
                        ListSettingsToTableConstraint.Constant = -NavBarManager.NavBarHeight -
                                                                 ListSettingsView.DefaultHeight;
                    }
                },
                    animated, animationFinish);
                break;
            }

            var size = ScreenUtil.IsVerticalOrientation
                ? ButtonBarButton.DefaultVerticalSize
                : ButtonBarButton.DefaultLandscapeSize;

            FullscreenWidthConstraint.Constant  = size.Width;
            FullscreenHeightConstraint.Constant = size.Height;
        }