共用方式為


新增 iOS 特定格式設定

設定 iOS 特定格式的其中一 種方法是建立控制件的自定義轉譯器 ,並為每個平台設定平臺特定的樣式和色彩。

控制 iOS 應用程式外觀方式 Xamarin.Forms 的其他選項包括:

以下將討論這些替代方案。

自訂 Info.plist

Info.plist 檔案可讓您設定 iOS 應用程式的轉譯器的某些層面,例如狀態列的顯示方式(以及是否顯示)。

例如,使用下列程式代碼在所有平台上設定導覽列色彩和文字色彩:

var nav = new NavigationPage (new TodoListPage ());
nav.BarBackgroundColor = Color.FromHex("91CA47");
nav.BarTextColor = Color.White;

結果會顯示在下面的螢幕代碼段中。 請注意,狀態列專案是黑色的(這無法設定在 內 Xamarin.Forms ,因為它是平臺特定的功能)。

顯示 iOS 主題的螢幕快照,其中以黑色文字顯示狀態列專案。

在理想情況下,狀態列也會是白色的 , 我們可以直接在 iOS 專案中完成。 將下列專案新增至 Info.plist ,以強制狀態列為白色:

iOS Info.plist 專案

或直接編輯對應的 Info.plist 檔案,以包含:

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

現在當應用程式執行時,導覽列為綠色,其文字為白色(由於 Xamarin.Forms 格式設定), 狀態 列文字也因為iOS 特定設定而為白色:

顯示 iOS 主題的螢幕快照,其中以白色文字顯示狀態列專案。

UIAppearance API

API 可用來設定許多 iOS 控制件的視覺屬性,而不需要建立自定義轉譯器UIAppearance

將單行程式代碼新增至 AppDelegate.csFinishedLaunching 方法,可以使用其 Appearance 屬性來設定指定類型的所有控件的樣式。 下列程式代碼包含兩個範例 - 全域設定索引標籤和切換控件的樣式:

iOS 專案中的AppDelegate.cs

public override bool FinishedLaunching (UIApplication app, NSDictionary options)
{
  // tab bar
    UITabBar.Appearance.SelectedImageTintColor = UIColor.FromRGB(0x91, 0xCA, 0x47); // green
  // switch
    UISwitch.Appearance.OnTintColor = UIColor.FromRGB(0x91, 0xCA, 0x47); // green
    // required Xamarin.Forms code
    Forms.Init ();
    LoadApplication (new App ());
    return base.FinishedLaunching (app, options);
}

UITabBar

根據預設,選取的索引標籤圖示 TabbedPage 會是藍色:

TabbedPage 中的預設 iOS 索引標籤圖示

若要變更此行為,請設定 UITabBar.Appearance 屬性:

UITabBar.Appearance.SelectedImageTintColor = UIColor.FromRGB(0x91, 0xCA, 0x47); // green

這會導致選取的索引標籤為綠色:

TabbedPage 中的綠色 iOS 索引標籤圖示

使用此 API 可讓您使用很少的程式代碼自訂 iOS 上的外觀 Xamarin.FormsTabbedPage 。 如需 使用自定義轉譯器來設定索引標籤特定字型的詳細資訊,請參閱自定義索引標籤

UISwitch

控制項 Switch 是可輕易設定樣式的另一個範例:

UISwitch.Appearance.OnTintColor = UIColor.FromRGB(0x91, 0xCA, 0x47); // green

這兩個螢幕擷取會顯示左側的預設 UISwitch 控制件,以及右側的自訂版本 (設定 Appearance) :

預設UISwitch色彩自訂UISwitch色彩

其他控制件

許多 iOS 使用者介面控制項都可以使用 UIAppearance API 來設定其預設色彩和其他屬性。