diff options
author | Sandro Cavazzoni <sandro@ideaful.it> | 2017-01-12 20:38:24 +0100 |
---|---|---|
committer | Rui Marinho <me@ruimarinho.net> | 2017-01-12 19:38:24 +0000 |
commit | f81e41b11b4e1398f67f047725c2b3438094d5f8 (patch) | |
tree | 2fc8916529a69b01ec5c1f87e49ae43889e53b09 /Xamarin.Forms.Platform.iOS | |
parent | 16164132156fd799d76c8a88c11627dc66cecbf3 (diff) | |
download | xamarin-forms-f81e41b11b4e1398f67f047725c2b3438094d5f8.tar.gz xamarin-forms-f81e41b11b4e1398f67f047725c2b3438094d5f8.tar.bz2 xamarin-forms-f81e41b11b4e1398f67f047725c2b3438094d5f8.zip |
[iOS] Fix child view position when the Navigation Bar is translucent (#659)
Diffstat (limited to 'Xamarin.Forms.Platform.iOS')
-rw-r--r-- | Xamarin.Forms.Platform.iOS/Renderers/NavigationRenderer.cs | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/Xamarin.Forms.Platform.iOS/Renderers/NavigationRenderer.cs b/Xamarin.Forms.Platform.iOS/Renderers/NavigationRenderer.cs index 6af40216..6b698f22 100644 --- a/Xamarin.Forms.Platform.iOS/Renderers/NavigationRenderer.cs +++ b/Xamarin.Forms.Platform.iOS/Renderers/NavigationRenderer.cs @@ -154,7 +154,7 @@ namespace Xamarin.Forms.Platform.iOS var toolbar = _secondaryToolbar; // Use 0 if the NavBar is hidden or will be hidden - var toolbarY = NavigationBarHidden || !NavigationPage.GetHasNavigationBar(Current) ? 0 : navBarFrame.Bottom; + var toolbarY = NavigationBarHidden || NavigationBar.Translucent || !NavigationPage.GetHasNavigationBar(Current) ? 0 : navBarFrame.Bottom; toolbar.Frame = new RectangleF(0, toolbarY, View.Frame.Width, toolbar.Frame.Height); double trueBottom = toolbar.Hidden ? toolbarY : toolbar.Frame.Bottom; @@ -824,7 +824,13 @@ namespace Xamarin.Forms.Platform.iOS public override void ViewWillAppear(bool animated) { UpdateNavigationBarVisibility(animated); - EdgesForExtendedLayout = UIRectEdge.None; + + NavigationRenderer n; + var isTranslucent = false; + if (_navigation.TryGetTarget(out n)) + isTranslucent = n.NavigationBar.Translucent; + EdgesForExtendedLayout = isTranslucent ? UIRectEdge.All : UIRectEdge.None; + base.ViewWillAppear(animated); } |