Große Seitentitel auf iOS

Download Sample Das Beispiel herunterladen

Diese iOS-plattformspezifische Wird verwendet, um den Seitentitel als großen Titel auf der Navigationsleiste eines , NavigationPagefür Geräte anzuzeigen, 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, während der Benutzer mit dem Scrollen von Inhalten beginnt, sodass die Bildschirmfläche effizient verwendet wird. Im Querformat kehrt der Titel jedoch zur Mitte der Navigationsleiste zurück, um das Inhaltslayout zu optimieren. Sie wird in XAML verbraucht, indem Sie die NavigationPage.PrefersLargeTitles angefügte Eigenschaft auf einen boolean Wert festlegen:

<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 von C# mithilfe der Fluent-API 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 Methode nur auf iOS ausgeführt wird. Die NavigationPage.SetPrefersLargeTitle Methode im Xamarin.Forms.PlatformConfiguration.iOSSpecific Namespace steuert, ob große Titel aktiviert sind.

Wenn große Titel auf dem NavigationPageNavigationsstapel aktiviert sind, werden alle Seiten im Navigationsstapel große Titel 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 über C# mithilfe der Fluent-API außer Kraft gesetzt 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 Methode nur auf iOS ausgeführt wird. Die Page.SetLargeTitleDisplay Methode steuert im Xamarin.Forms.PlatformConfiguration.iOSSpecific Namespace das große Titelverhalten auf dem Page, wobei die LargeTitleDisplayMode Aufzählung drei mögliche Werte bereitstellt:

  • Always – Erzwingen Sie die Navigationsleiste und den Schriftgrad, um das große Format zu verwenden.
  • Automatic – Verwenden Sie dieselbe Formatvorlage (groß oder klein) wie das vorherige Element im Navigationsstapel.
  • Never – erzwingen Sie die Verwendung der regulären, kleinen Formatnavigationsleiste.

Darüber hinaus kann die SetLargeTitleDisplay Methode verwendet werden, um die Enumerationswerte durch Aufrufen der LargeTitleDisplay Methode umzuschalten, die den aktuellen LargeTitleDisplayModeWert 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 auf das Pageangegebene LargeTitleDisplayMode Element angewendet wird, das das große Titelverhalten steuert:

Blur Effect Platform-Specific