iOS の大きなページ タイトル

サンプルのダウンロードサンプルのダウンロード

この iOS プラットフォーム固有のは、iOS 11 以降を使用するデバイスの のナビゲーション バー NavigationPageにページ タイトルを大きなタイトルとして表示するために使用されます。 大きなタイトルは左揃えにして大きなフォントを使用し、ユーザーがコンテンツのスクロールを開始すると標準タイトルに切り替わるので、画面の不動産が効率的に使用されます。 ただし、横向きでは、タイトルはナビゲーション バーの中央に戻り、コンテンツ レイアウトを最適化します。 添付プロパティbooleanを値に設定NavigationPage.PrefersLargeTitlesすることで、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.LargeTitleDisplayLargeTitleDisplayMode値に設定することで、ページでオーバーライドできます。

<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 でのみ実行されるように指定します。 名前空間の メソッドはPage.SetLargeTitleDisplay、 で大きなタイトルの動作をPage制御し、 列挙では次の LargeTitleDisplayMode 3 つの可能な値を提供Xamarin.Forms.PlatformConfiguration.iOSSpecificします。

  • 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適用され、大きなタイトルの動作が制御されます。

ぼかし効果プラットフォーム固有