簡體   English   中英

Xamarin Forms iOS 狀態欄文本顏色

[英]Xamarin Forms iOS status bar text color

我無法將 Xamarin Forms iOS 應用的狀態欄文本顏色更改為白色。 我在 info.plist 中有如下更改:

<key>UIStatusBarStyle</key>
<string>UIStatusBarStyleLightContent</string>
<key>UIViewControllerBasedStatusBarAppearance</key>
<false/>

然而顏色仍然是黑色..有沒有另一種方法來改變狀態欄文本的顏色?

在 Xamarin.Forms 中,您需要做三件事才能在 iOS 狀態欄中實現白色文本。 我還在下面發布了一個示例 Xamarin.Forms 應用程序,該應用程序在 iOS 狀態欄中使用白色文本。

1.更新Info.plist

Info.plist ,添加 Boolean Property View controller-based status bar appearance並將其值設置為No

在此處輸入圖像描述

2. 使用 NavigationPage 並將導航欄文本顏色設置為白色

Application類(通常是App.cs )中, MainPage必須是NavigationPage ,並且BarTextColor必須設置為Color.White 在此處輸入圖像描述

3.清理和重建應用程序

有時編譯器在您清理並重建應用程序之前不會更新狀態欄顏色,因此在步驟 1 和 2 中進行更改后,清理應用程序並重建它。 在此處輸入圖像描述

示例應用

https://github.com/brminnick/SaveImageToDatabaseSampleApp/

對我來說,在 IOS 中更改狀態欄的唯一方法是在 AppDelegate 的 FinishedLaunching 中使用此代碼

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

    LoadApplication (.....);
    app.SetStatusBarStyle(UIStatusBarStyle.LightContent, true);

    return base.FinishedLaunching (app, options);
}

所以我為更改狀態欄顏色狀態欄文本顏色所做的是:

信息列表

<key>UIViewControllerBasedStatusBarAppearance</key>
<false/>
<!--<key>UIStatusBarHidden</key>-->
<!--<true/>-->

應用委托

在函數FinishedLaunching()中,添加以下代碼:

UIView statusBar = UIApplication.SharedApplication.ValueForKey(new NSString("statusBar")) as UIView;
if (statusBar != null && statusBar.RespondsToSelector(new ObjCRuntime.Selector("setBackgroundColor:")))
{
    statusBar.BackgroundColor = Color.FromHex("#7f6550").ToUIColor(); // change to your desired color 
}

應用程序.xaml

我在下面添加了代碼以將狀態欄文本顏色更改為White

<Style TargetType="{x:Type NavigationPage}">
     <!--<Setter Property="BarBackgroundColor" Value="Black" />-->
     <Setter Property="BarTextColor" Value="White" />
</Style> 

選擇NavigationBar並將Style屬性更改為Black

在此處輸入圖像描述

就我而言,將其添加到AppDelegate FinishedLaunching有效:

UIApplication.SharedApplication.StatusBarStyle = UIStatusBarStyle.LightContent;

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM