UI adjustment

This commit is contained in:
2020-05-07 12:46:31 +08:00
parent a0607993e9
commit 84aecdf39b
21 changed files with 593 additions and 86 deletions

View File

@ -1,6 +1,6 @@
using System.Diagnostics.CodeAnalysis;
using Foundation;
using Foundation;
using Pixiview.iOS.Renderers;
using Pixiview.iOS.Services;
using Pixiview.UI;
using Pixiview.Utils;
using UIKit;
@ -46,11 +46,8 @@ namespace Pixiview.iOS.Renderers
var element = Element;
if (element != null)
{
var style = ConvertStyle(Screen.GetStatusBarStyle(element));
if (UIApplication.SharedApplication.StatusBarStyle != style)
{
SetStatusBarStyle(style);
}
var style = EnvironmentService.ConvertStyle(Screen.GetStatusBarStyle(element));
EnvironmentService.SetStatusBarStyle(style);
}
observer = UIDevice.Notifications.ObserveOrientationDidChange(ChangeOrientation);
@ -68,38 +65,6 @@ namespace Pixiview.iOS.Renderers
base.ViewWillDisappear(animated);
}
private void SetStatusBarStyle(UIStatusBarStyle style)
{
if (style == UIStatusBarStyle.BlackOpaque)
{
UIApplication.SharedApplication.SetStatusBarHidden(true, true);
}
else
{
UIApplication.SharedApplication.SetStatusBarStyle(style, true);
UIApplication.SharedApplication.SetStatusBarHidden(false, true);
}
SetNeedsStatusBarAppearanceUpdate();
}
[SuppressMessage("Code Notifications", "XI0002:Notifies you from using newer Apple APIs when targeting an older OS version", Justification = "<Pending>")]
private UIStatusBarStyle ConvertStyle(StatusBarStyles style)
{
switch (style)
{
case StatusBarStyles.DarkText:
return UIStatusBarStyle.DarkContent;
case StatusBarStyles.WhiteText:
return UIStatusBarStyle.LightContent;
case StatusBarStyles.Hidden:
return UIStatusBarStyle.BlackOpaque;
case StatusBarStyles.Default:
default:
return UIStatusBarStyle.Default;
}
}
void ChangeOrientation(object sender, NSNotificationEventArgs e)
{
var current = UIDevice.CurrentDevice.Orientation;
@ -113,7 +78,7 @@ namespace Pixiview.iOS.Renderers
lastOrientation = current;
if (current == UIDeviceOrientation.Portrait && UIApplication.SharedApplication.StatusBarHidden)
{
var style = ConvertStyle(Screen.GetStatusBarStyle(Element));
var style = EnvironmentService.ConvertStyle(Screen.GetStatusBarStyle(Element));
if (style != UIStatusBarStyle.BlackOpaque)
{
UIApplication.SharedApplication.SetStatusBarHidden(false, true);