Чтобы разместить страницы моего приложения под строкой состояния iOS, я создал собственный рендер для своих страниц. Предполагается переместить страницу ниже строки, так же, как следующий XAML будет делать:Перемещение персонализированной страницы под строкой состояния на iOS
<local:CustomRenderedPage.Padding>
<OnPlatform x:TypeArguments="Thickness">
<OnPlatform.iOS>
0, 40, 0, 0
</OnPlatform.iOS>
</OnPlatform>
</local:CustomRenderedPage.Padding>
Поэтому я использовал this ответ, который я преобразуется в C#.
Однако без какой-либо ошибки страница по-прежнему отображается за строкой состояния. Чтобы проверить, работает ли пользовательский рендерер, я также меняю цвет фона, который работает.
//manually adjust the frame of the main view to prevent it from appearing under the status bar.
var app = UIApplication.SharedApplication;
if (!app.StatusBarHidden)
{
this.View.BackgroundColor = UIKit.UIColor.FromRGB(20, 100, 20); //works
this.View.Frame = new CoreGraphics.CGRect(0.0, app.StatusBarFrame.Size.Height, this.View.Bounds.Size.Width, this.View.Bounds.Size.Height - app.StatusBarFrame.Size.Height); // does not work
}
Log.WriteLine("Done"); // works
Я делаю что-то неправильно или почему это не работает?
Это то, что предполагается. – cocoseis
Что такое «это» в вашем случае? И где вы называете этот код? –
Я хочу переместить страницу вниз. Я вызываю это из встроенного средства визуализации страницы. – cocoseis