diff --git a/Delta/Game Selection/Segues/GamesStoryboardSegue.swift b/Delta/Game Selection/Segues/GamesStoryboardSegue.swift index 220cd0d..3e3a387 100644 --- a/Delta/Game Selection/Segues/GamesStoryboardSegue.swift +++ b/Delta/Game Selection/Segues/GamesStoryboardSegue.swift @@ -76,6 +76,7 @@ extension GamesStoryboardSegue: UIViewControllerAnimatedTransitioning { transitionContext.sourceViewController.beginAppearanceTransition(false, animated: true) + transitionContext.destinationView.clipsToBounds = false transitionContext.destinationView.frame = transitionContext.destinationViewFinalFrame! transitionContext.destinationView.transform = CGAffineTransform(scaleX: 2.0, y: 2.0) transitionContext.containerView.addSubview(transitionContext.destinationView) @@ -97,6 +98,7 @@ extension GamesStoryboardSegue: UIViewControllerAnimatedTransitioning if let navigationController = transitionContext.destinationViewController as? UINavigationController { let padding: CGFloat = 44 + let topViewController = navigationController.viewControllers[0] if !navigationController.isNavigationBarHidden { @@ -105,13 +107,26 @@ extension GamesStoryboardSegue: UIViewControllerAnimatedTransitioning topToolbar.barStyle = navigationController.toolbar.barStyle transitionContext.destinationView.insertSubview(topToolbar, at: 1) - topToolbar.topAnchor.constraint(equalTo: navigationController.navigationBar.topAnchor, constant: -padding).isActive = true - topToolbar.leftAnchor.constraint(equalTo: navigationController.navigationBar.leftAnchor, constant: -padding).isActive = true - topToolbar.rightAnchor.constraint(equalTo: navigationController.navigationBar.rightAnchor, constant: padding).isActive = true - - // There is no easy way to determine the extra height necessary at this point of the transition, so hard code for now. - let additionalSearchBarHeight = 44 as CGFloat - topToolbar.heightAnchor.constraint(equalToConstant: navigationController.topViewController!.view.safeAreaInsets.top + additionalSearchBarHeight).isActive = true + if #available(iOS 13, *) + { + let appearance = UIToolbarAppearance(barAppearance: navigationController.navigationBar.standardAppearance) + topToolbar.standardAppearance = appearance + + topToolbar.topAnchor.constraint(equalTo: topViewController.view.topAnchor, constant: -padding).isActive = true + topToolbar.leftAnchor.constraint(equalTo: topViewController.view.leftAnchor, constant: -padding).isActive = true + topToolbar.rightAnchor.constraint(equalTo: topViewController.view.rightAnchor, constant: padding).isActive = true + topToolbar.bottomAnchor.constraint(equalTo: topViewController.view.safeAreaLayoutGuide.topAnchor).isActive = true + } + else + { + topToolbar.topAnchor.constraint(equalTo: navigationController.navigationBar.topAnchor, constant: -padding).isActive = true + topToolbar.leftAnchor.constraint(equalTo: navigationController.navigationBar.leftAnchor, constant: -padding).isActive = true + topToolbar.rightAnchor.constraint(equalTo: navigationController.navigationBar.rightAnchor, constant: padding).isActive = true + + // There is no easy way to determine the extra height necessary at this point of the transition, so hard code for now. + let additionalSearchBarHeight = 44 as CGFloat + topToolbar.heightAnchor.constraint(equalToConstant: navigationController.topViewController!.view.safeAreaInsets.top + additionalSearchBarHeight).isActive = true + } topPaddingToolbar = topToolbar } @@ -123,10 +138,23 @@ extension GamesStoryboardSegue: UIViewControllerAnimatedTransitioning bottomToolbar.barStyle = navigationController.toolbar.barStyle transitionContext.destinationView.insertSubview(bottomToolbar, belowSubview: navigationController.navigationBar) - bottomToolbar.topAnchor.constraint(equalTo: navigationController.toolbar.topAnchor).isActive = true - bottomToolbar.bottomAnchor.constraint(equalTo: navigationController.toolbar.bottomAnchor, constant: padding).isActive = true - bottomToolbar.leftAnchor.constraint(equalTo: navigationController.toolbar.leftAnchor, constant: -padding).isActive = true - bottomToolbar.rightAnchor.constraint(equalTo: navigationController.toolbar.rightAnchor, constant: padding).isActive = true + if #available(iOS 13, *) + { + let appearance = UIToolbarAppearance(barAppearance: navigationController.toolbar.standardAppearance) + bottomToolbar.standardAppearance = appearance + + bottomToolbar.topAnchor.constraint(equalTo: topViewController.view.safeAreaLayoutGuide.bottomAnchor).isActive = true + bottomToolbar.bottomAnchor.constraint(equalTo: topViewController.view.bottomAnchor, constant: padding).isActive = true + bottomToolbar.leftAnchor.constraint(equalTo: topViewController.view.leftAnchor, constant: -padding).isActive = true + bottomToolbar.rightAnchor.constraint(equalTo: topViewController.view.rightAnchor, constant: padding).isActive = true + } + else + { + bottomToolbar.topAnchor.constraint(equalTo: navigationController.toolbar.topAnchor).isActive = true + bottomToolbar.bottomAnchor.constraint(equalTo: navigationController.toolbar.bottomAnchor, constant: padding).isActive = true + bottomToolbar.leftAnchor.constraint(equalTo: navigationController.toolbar.leftAnchor, constant: -padding).isActive = true + bottomToolbar.rightAnchor.constraint(equalTo: navigationController.toolbar.rightAnchor, constant: padding).isActive = true + } bottomPaddingToolbar = bottomToolbar }