XamarinForms 系列課程

特別說明

2017/01/25

Xamarin FAQ 1-24 : 如何變更 iOS 應用程式的狀態列背景與文字顏色

問題

當您在規劃一個 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,
            };

沒有留言:

張貼留言