iOS の大きなページ タイトル
この iOS プラットフォーム固有設定は、iOS 11 以上を使用するデバイスの NavigationPage
のナビゲーション バー上に、ページ タイトルを大きなタイトルとして表示するために使用されます。 大きなタイトルは左揃えになり、より大きなフォントが使用され、ユーザーがコンテンツのスクロールを開始すると標準タイトルに切り替わるので、画面領域が効率的に使用されます。 ただし、横向きでは、タイトルはナビゲーション バーの中央に戻り、コンテンツ レイアウトを最適化します。 NavigationPage.PrefersLargeTitles
添付プロパティを boolean
値に設定して、XAML で使用されます。
<NavigationPage xmlns="http://xamarin.com/schemas/2014/forms"
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
xmlns:ios="clr-namespace:Xamarin.Forms.PlatformConfiguration.iOSSpecific;assembly=Xamarin.Forms.Core"
...
ios:NavigationPage.PrefersLargeTitles="true">
...
</NavigationPage>
または、fluent API を使用して C# から使用することもできます。
using Xamarin.Forms.PlatformConfiguration;
using Xamarin.Forms.PlatformConfiguration.iOSSpecific;
...
var navigationPage = new Xamarin.Forms.NavigationPage(new iOSLargeTitlePageCS());
navigationPage.On<iOS>().SetPrefersLargeTitles(true);
NavigationPage.On<iOS>
メソッドは、このプラットフォーム固有の機能が iOS でのみ実行されるように指定します。 Xamarin.Forms.PlatformConfiguration.iOSSpecific
名前空間の NavigationPage.SetPrefersLargeTitle
メソッドは、大きなタイトルを有効にするかどうかを制御します。
大きなタイトルが NavigationPage
で有効になっている場合、ナビゲーション スタック内のすべてのページに大きなタイトルが表示されます。 Page.LargeTitleDisplay
添付プロパティを LargeTitleDisplayMode
列挙型の値に設定すれば、ページでこの動作をオーバーライドできます。
<ContentPage ...
xmlns:ios="clr-namespace:Xamarin.Forms.PlatformConfiguration.iOSSpecific;assembly=Xamarin.Forms.Core"
Title="Large Title"
ios:Page.LargeTitleDisplay="Never">
...
</ContentPage>
または、fluent API を使用して C# からページの動作をオーバーライドすることもできます。
using Xamarin.Forms.PlatformConfiguration;
using Xamarin.Forms.PlatformConfiguration.iOSSpecific;
...
public class iOSLargeTitlePageCS : ContentPage
{
public iOSLargeTitlePageCS(ICommand restore)
{
On<iOS>().SetLargeTitleDisplay(LargeTitleDisplayMode.Never);
...
}
...
}
Page.On<iOS>
メソッドは、このプラットフォーム固有の構成が iOS でのみ動作するように指定します。 Xamarin.Forms.PlatformConfiguration.iOSSpecific
名前空間内の Page.SetLargeTitleDisplay
メソッドは、3 つの可能な値を提供する LargeTitleDisplayMode
列挙型により、Page
で大きなタイトルの動作を制御します。
Always
: ナビゲーション バーとフォント サイズに大きな形式を強制的に使用することを示します。Automatic
: ナビゲーション スタックの前の項目と同じスタイル (大または小) を使用します。Never
: 標準の小さい形式のナビゲーション バーを強制的に使用します。
さらに、SetLargeTitleDisplay
メソッドを使用して、現在の LargeTitleDisplayMode
を返す LargeTitleDisplay
メソッドを呼び出すことによって列挙値を切り替えることができます。
switch (On<iOS>().LargeTitleDisplay())
{
case LargeTitleDisplayMode.Always:
On<iOS>().SetLargeTitleDisplay(LargeTitleDisplayMode.Automatic);
break;
case LargeTitleDisplayMode.Automatic:
On<iOS>().SetLargeTitleDisplay(LargeTitleDisplayMode.Never);
break;
case LargeTitleDisplayMode.Never:
On<iOS>().SetLargeTitleDisplay(LargeTitleDisplayMode.Always);
break;
}
その結果、指定した LargeTitleDisplayMode
が Page
に適用され、大きなタイトルの動作を制御します。