問題
當您在規劃一個 Xamarin.Forms 的應用程式的時候,都會制訂一套配色規則,並且每個頁面與控制項,都會依照這套視覺設計規範,進行套版設計;可是,當您在 iOS 平台執行這個應用程式時候,卻發現到狀態列的背景與文字顏色似乎沒有地方可以修改,這該如何處理呢?
解答
您需要在 iOS 原生專案內找到這個應用程式的進入點
請開啟 AppDelegate.cs 檔案
在
AppDelegate
類別內,加入底下的宣告,其中,ExportedColors.AccentColor
與 ExportedColors.InverseTextColor
是定義在核心 PCL 專案內的一個 Color
類別的顏色物件。而 ToUIColor
是 Xamarin.Forms.Platform.iOS.ColorExtensions
類別內定義的延伸方法,使用這樣的方法來處理,可以將 Xamarin.Forms 內的顏色物件,轉換成為 Xamarin.iOS內的 UIColor
物件。這裡宣告了背景與文字顏色。 public static UIColor AccentColor = ExportedColors.AccentColor.ToUIColor();
public static UIColor TextColor = ExportedColors.InverseTextColor.ToUIColor();
在 FinishedLaunching 方法內,加入底下程式碼
這裡使用了原生 iOS 專案內的
UINavigationBar
類別,進行設定狀態列的背景與文字顏色。 UINavigationBar.Appearance.BarTintColor = AccentColor;
UINavigationBar.Appearance.TintColor = TextColor;
UINavigationBar.Appearance.TitleTextAttributes = new UIStringAttributes
{
ForegroundColor = UIColor.White,
};