如何在Xamarin.Forms应用程序中隐藏主页指示器?看来我需要获取Forms应用程序的根UIViewControler并以某种方式覆盖PrefersHomeIndicatorAutoHidden才能返回true。但我无权访问该根UIViewControler ...
您是否有任何想法如何在Xamarin.Forms应用程序中隐藏Home Indicator?
答案 0 :(得分:1)
您应该能够简单地创建一个自定义渲染器并覆盖此属性。
类似这样的东西:
[assembly: ExportRenderer(typeof(MyPage), typeof(HomeIndicatorRenderer))]
namespace MyApp
{
public class HomeIndicatorRenderer : PageRenderer
{
public override bool PrefersHomeIndicatorAutoHidden => true;
public override void ViewDidAppear(bool animated)
{
base.ViewDidAppear(animated);
SetNeedsUpdateOfHomeIndicatorAutoHidden();
}
}
}
您可能应该检查一下该版本是否为iOS 11或更高版本。
但是正如已经指出的那样,您可能要对此小心。而且我认为Apple文档甚至声明该设置可以被操作系统随意忽略。
答案 1 :(得分:1)
我在Xamarin.Forms.Page
之后的InitializeComponent()
的构造函数中使用它:
using Xamarin.Essentials;
using Xamarin.Forms.PlatformConfiguration;
using Xamarin.Forms.PlatformConfiguration.iOSSpecific;
// ...
if (Device.RuntimePlatform == Device.iOS &&
DeviceInfo.Version.Major > 11)
{
On<iOS>().SetPrefersHomeIndicatorAutoHidden(true);
}
基于SO thread。
我的用例是在iOS模拟器中为App Store创建干净的屏幕截图。