initial
This commit is contained in:
68
Pixiview.iOS/Renderers/AdaptedPageRenderer.cs
Normal file
68
Pixiview.iOS/Renderers/AdaptedPageRenderer.cs
Normal file
@ -0,0 +1,68 @@
|
||||
using System.Diagnostics.CodeAnalysis;
|
||||
using Pixiview.iOS.Renderers;
|
||||
using Pixiview.UI;
|
||||
using Pixiview.Utils;
|
||||
using UIKit;
|
||||
using Xamarin.Forms;
|
||||
using Xamarin.Forms.Platform.iOS;
|
||||
|
||||
[assembly: ExportRenderer(typeof(AdaptedPage), typeof(AdaptedPageRenderer))]
|
||||
namespace Pixiview.iOS.Renderers
|
||||
{
|
||||
public class AdaptedPageRenderer : PageRenderer
|
||||
{
|
||||
public override void ViewDidLoad()
|
||||
{
|
||||
base.ViewDidLoad();
|
||||
|
||||
if (Element is AdaptedPage page)
|
||||
{
|
||||
page.OnLoad();
|
||||
}
|
||||
}
|
||||
|
||||
public override void ViewDidAppear(bool animated)
|
||||
{
|
||||
base.ViewDidAppear(animated);
|
||||
|
||||
var style = ConvertStyle(StatusBar.GetStatusBarStyle(Element));
|
||||
if (UIApplication.SharedApplication.StatusBarStyle != style)
|
||||
{
|
||||
SetStatusBarStyle(style);
|
||||
}
|
||||
}
|
||||
|
||||
private void SetStatusBarStyle(UIStatusBarStyle style)
|
||||
{
|
||||
if (style == UIStatusBarStyle.BlackOpaque)
|
||||
{
|
||||
UIApplication.SharedApplication.SetStatusBarHidden(true, UIStatusBarAnimation.Fade);
|
||||
}
|
||||
else
|
||||
{
|
||||
UIApplication.SharedApplication.SetStatusBarStyle(style, true);
|
||||
UIApplication.SharedApplication.SetStatusBarHidden(false, UIStatusBarAnimation.Fade);
|
||||
}
|
||||
|
||||
SetNeedsStatusBarAppearanceUpdate();
|
||||
}
|
||||
|
||||
[SuppressMessage("Code Notifications", "XI0002:Notifies you from using newer Apple APIs when targeting an older OS version", Justification = "<Pending>")]
|
||||
[SuppressMessage("Style", "IDE0066:Convert switch statement to expression", 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;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user