Große Seitentitel unter iOS

Diese plattformspezifische iOS-Plattform dient zum Anzeigen des Seitentitels als großer Titel auf der Navigationsleiste eines NavigationPage, für Geräte, die iOS 11 oder höher verwenden. Ein großer Titel ist linksbündig ausgerichtet und verwendet eine größere Schriftart und wechselt zu einem Standardtitel, wenn der Benutzer mit dem Scrollen von Inhalten beginnt, sodass der Bildschirminhalt effizient verwendet wird. Im Querformat kehrt der Titel jedoch zur Mitte der Navigationsleiste zurück, um das Inhaltslayout zu optimieren. Sie wird in XAML genutzt, indem Sie die NavigationPage.PrefersLargeTitles angefügte Eigenschaft auf einen boolean Wert festlegt:

<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>

Alternativ kann sie über die Fluent-API von C# genutzt werden:

using Xamarin.Forms.PlatformConfiguration;
using Xamarin.Forms.PlatformConfiguration.iOSSpecific;
...

var navigationPage = new Xamarin.Forms.NavigationPage(new iOSLargeTitlePageCS());
navigationPage.On<iOS>().SetPrefersLargeTitles(true);

Die NavigationPage.On<iOS> Methode gibt an, dass diese plattformspezifische Nur unter iOS ausgeführt wird. Die NavigationPage.SetPrefersLargeTitle Methode steuert im Xamarin.Forms.PlatformConfiguration.iOSSpecific Namespace, ob große Titel aktiviert sind.

Sofern große Titel auf dem NavigationPageNavigationsstapel aktiviert sind, werden große Titel auf allen Seiten im Navigationsstapel angezeigt. Dieses Verhalten kann auf Seiten überschrieben werden, indem die Page.LargeTitleDisplay angefügte Eigenschaft auf einen Wert der LargeTitleDisplayMode Enumeration festgelegt wird:

<ContentPage ...
             xmlns:ios="clr-namespace:Xamarin.Forms.PlatformConfiguration.iOSSpecific;assembly=Xamarin.Forms.Core"
             Title="Large Title"
             ios:Page.LargeTitleDisplay="Never">
  ...
</ContentPage>

Alternativ kann das Seitenverhalten mithilfe der Fluent-API von C# überschrieben werden:

using Xamarin.Forms.PlatformConfiguration;
using Xamarin.Forms.PlatformConfiguration.iOSSpecific;
...

public class iOSLargeTitlePageCS : ContentPage
{
    public iOSLargeTitlePageCS(ICommand restore)
    {
        On<iOS>().SetLargeTitleDisplay(LargeTitleDisplayMode.Never);
        ...
    }
    ...
}

Die Page.On<iOS> Methode gibt an, dass diese plattformspezifische Nur unter iOS ausgeführt wird. Die Page.SetLargeTitleDisplay Methode steuert im Xamarin.Forms.PlatformConfiguration.iOSSpecific Namespace das Verhalten des großen Titels auf dem Page, wobei die LargeTitleDisplayMode Aufzählung drei mögliche Werte bereitstellt:

  • Always – erzwingt, dass die Navigationsleiste und der Schriftgrad das große Format verwenden.
  • Automatic – verwendet dieselbe Formatvorlage (groß oder klein) wie das vorherige Element im Navigationsstapel.
  • Never – erzwingt die Verwendung der normalen Navigationsleiste im kleinen Format.

Darüber hinaus kann die SetLargeTitleDisplay Methode zum Umschalten der Aufzählungswerte verwendet werden, indem die LargeTitleDisplay Methode aufgerufen wird, die die aktuelle LargeTitleDisplayMode zurückgibt:

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;
}

Das Ergebnis ist, dass ein angegebenes LargeTitleDisplayMode Element auf das PageSteuerelement angewendet wird, welches das Verhalten des großen Titels steuert:

Weichzeichnen-Effekt plattformspezifisch