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; }