diff options
author | Paul DiPietro <pauldipietro@users.noreply.github.com> | 2016-11-16 04:02:54 -0600 |
---|---|---|
committer | Rui Marinho <me@ruimarinho.net> | 2016-11-16 11:02:54 +0100 |
commit | 98235e0eea8b540ac10a71b97ee08a5842abd664 (patch) | |
tree | 83856b6c24d0b8730946cd3241f550623a0d7f7b /Xamarin.Forms.Core/PlatformConfiguration | |
parent | 107ed5e545698a647b9cd1be22745a2c35aeebc4 (diff) | |
download | xamarin-forms-98235e0eea8b540ac10a71b97ee08a5842abd664.tar.gz xamarin-forms-98235e0eea8b540ac10a71b97ee08a5842abd664.tar.bz2 xamarin-forms-98235e0eea8b540ac10a71b97ee08a5842abd664.zip |
[iOS] Add Platform Specific features for PrefersStatusBarHidden/UIStatusBarAnimation (#463)
* [iOS] Add Platform Specific features for PrefersStatusBarHidden/UIStatusBarAnimation
* Update docs
Diffstat (limited to 'Xamarin.Forms.Core/PlatformConfiguration')
3 files changed, 78 insertions, 0 deletions
diff --git a/Xamarin.Forms.Core/PlatformConfiguration/iOSSpecific/Page.cs b/Xamarin.Forms.Core/PlatformConfiguration/iOSSpecific/Page.cs new file mode 100644 index 00000000..a32a1521 --- /dev/null +++ b/Xamarin.Forms.Core/PlatformConfiguration/iOSSpecific/Page.cs @@ -0,0 +1,60 @@ +namespace Xamarin.Forms.PlatformConfiguration.iOSSpecific +{ + using FormsElement = Forms.Page; + + public static class Page + { + public static readonly BindableProperty PrefersStatusBarHiddenProperty = + BindableProperty.Create("PrefersStatusBarHidden", typeof(StatusBarHiddenMode), typeof(Page), StatusBarHiddenMode.Default); + + public static StatusBarHiddenMode GetPrefersStatusBarHidden(BindableObject element) + { + return (StatusBarHiddenMode)element.GetValue(PrefersStatusBarHiddenProperty); + } + + public static void SetPrefersStatusBarHidden(BindableObject element, StatusBarHiddenMode value) + { + element.SetValue(PrefersStatusBarHiddenProperty, value); + } + + public static StatusBarHiddenMode PrefersStatusBarHidden(this IPlatformElementConfiguration<iOS, FormsElement> config) + { + return GetPrefersStatusBarHidden(config.Element); + } + + public static IPlatformElementConfiguration<iOS, FormsElement> SetPrefersStatusBarHidden(this IPlatformElementConfiguration<iOS, FormsElement> config, StatusBarHiddenMode value) + { + SetPrefersStatusBarHidden(config.Element, value); + return config; + } + + public static readonly BindableProperty PreferredStatusBarUpdateAnimationProperty = + BindableProperty.Create("PreferredStatusBarUpdateAnimation", typeof(UIStatusBarAnimation), typeof(Page), UIStatusBarAnimation.None); + + public static UIStatusBarAnimation GetPreferredStatusBarUpdateAnimation(BindableObject element) + { + return (UIStatusBarAnimation)element.GetValue(PreferredStatusBarUpdateAnimationProperty); + } + + public static void SetPreferredStatusBarUpdateAnimation(BindableObject element, UIStatusBarAnimation value) + { + if (value == UIStatusBarAnimation.Fade) + element.SetValue(PreferredStatusBarUpdateAnimationProperty, value); + else if (value == UIStatusBarAnimation.Slide) + element.SetValue(PreferredStatusBarUpdateAnimationProperty, value); + else + element.SetValue(PreferredStatusBarUpdateAnimationProperty, value); + } + + public static UIStatusBarAnimation PreferredStatusBarUpdateAnimation(this IPlatformElementConfiguration<iOS, FormsElement> config) + { + return GetPreferredStatusBarUpdateAnimation(config.Element); + } + + public static IPlatformElementConfiguration<iOS, FormsElement> SetPreferredStatusBarUpdateAnimation(this IPlatformElementConfiguration<iOS, FormsElement> config, UIStatusBarAnimation value) + { + SetPreferredStatusBarUpdateAnimation(config.Element, value); + return config; + } + } +} diff --git a/Xamarin.Forms.Core/PlatformConfiguration/iOSSpecific/StatusBarHiddenMode.cs b/Xamarin.Forms.Core/PlatformConfiguration/iOSSpecific/StatusBarHiddenMode.cs new file mode 100644 index 00000000..57c54b89 --- /dev/null +++ b/Xamarin.Forms.Core/PlatformConfiguration/iOSSpecific/StatusBarHiddenMode.cs @@ -0,0 +1,9 @@ +namespace Xamarin.Forms.PlatformConfiguration.iOSSpecific +{ + public enum StatusBarHiddenMode + { + Default, + True, + False + } +} diff --git a/Xamarin.Forms.Core/PlatformConfiguration/iOSSpecific/UIStatusBarAnimation.cs b/Xamarin.Forms.Core/PlatformConfiguration/iOSSpecific/UIStatusBarAnimation.cs new file mode 100644 index 00000000..ac594d15 --- /dev/null +++ b/Xamarin.Forms.Core/PlatformConfiguration/iOSSpecific/UIStatusBarAnimation.cs @@ -0,0 +1,9 @@ +namespace Xamarin.Forms.PlatformConfiguration.iOSSpecific +{ + public enum UIStatusBarAnimation + { + None, + Slide, + Fade + } +} |