Как установить цвет фона строки состояния на iOS? - PullRequest
0 голосов
/ 14 сентября 2018

Я все перепробовал.

App.xaml

<Application.Resources>
    <ResourceDictionary>
        <Style TargetType="NavigationPage">
            <Setter Property="BarBackgroundColor" Value="#00ff00"/>
        </Style>
    </ResourceDictionary>
</Application.Resources>

App.xaml.cs

public App ()
{
    InitializeComponent();
    MainPage = new NavigationPage(new HomePage())
    {
        BarBackgroundColor = Color.Green // doesn't work
    };
}

AppDelegate.cs

public override bool FinishedLaunching(UIApplication app, NSDictionary options)
{
    global::Xamarin.Forms.Forms.Init();

    LoadApplication(new App());

    UIKit.UIApplication.SharedApplication.SetStatusBarStyle(UIKit.UIStatusBarStyle.BlackOpaque, false); // doesn't have to be black. im just trying to get it to change to any color at all.

    return base.FinishedLaunching(app, options);
}

info.plist

<key>UIViewControllerBasedStatusBarAppearance</key>
<false/>

¯ \ _ (ツ) _ / ¯¯ \ _ (ツ) _ / ¯ ¯ \ _ (ツ) _ / ¯ ¯ \ _ (ツ) _ / ¯ ¯\ _ (ツ) _ / ¯ ¯ \ _ (ツ) _ / ¯ ¯ \ _ (ツ) _ / ¯

Ничто не делает ничего вообще.Это всегда выглядит так.

enter image description here

Чтобы было ясно, это должно выглядеть так.

enter image description here

Ответы [ 2 ]

0 голосов
/ 14 сентября 2018

Можно изменить цвет фона строки состояния на iOS, но это немного странно.

var statusBarView = UIApplication.SharedApplication.ValueForKey(new NSString("statusBar")) as UIView;
statusBarView.BackgroundColor = UIColor.Green;

Кроме того, если ваше приложение вращается, вам придется снова установить это значение и помнить, что яЯ не уверен, насколько любящим будет Apple во время представления приложения, когда вы меняете цвет.

0 голосов
/ 14 сентября 2018

Так что я сдался.

Одной из проблем является то, что высота строки состояния отличается в зависимости от устройства .Что я сделал, так это поместил BoxView под строку состояния и затем установил ее высоту во время выполнения.

.xaml

<BoxView x:Name="StatusBarBackground" BackgroundColor="Yellow" HorizontalOptions="FillAndExpand" VerticalOptions="FillAndExpand"/>

.cs

StatusBarBackground.Height = (int)UIKit.UIApplication.SharedApplication.StatusBarFrame.Height;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...