Freigeben über


Große Seitentitel unter iOS

Diese .NET Multi-Platform App UI (.NET MAUI) iOS-plattformspezifisch wird verwendet, um den Seitentitel als großen Titel auf der Navigationsleiste eines NavigationPage fü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, 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://schemas.microsoft.com/dotnet/2021/maui"
                xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
                xmlns:ios="clr-namespace:Microsoft.Maui.Controls.PlatformConfiguration.iOSSpecific;assembly=Microsoft.Maui.Controls"
                ...
                ios:NavigationPage.PrefersLargeTitles="true">
  ...
</NavigationPage>

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

using Microsoft.Maui.Controls.PlatformConfiguration;
using Microsoft.Maui.Controls.PlatformConfiguration.iOSSpecific;
...

var navigationPage = new Microsoft.Maui.Controls.NavigationPage(new iOSLargeTitlePageCode());
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 Microsoft.Maui.Controls.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:Microsoft.Maui.Controls.PlatformConfiguration.iOSSpecific;assembly=Microsoft.Maui.Controls"
             Title="Large Title"
             ios:Page.LargeTitleDisplay="Never">
  ...
</ContentPage>

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

using Microsoft.Maui.Controls.PlatformConfiguration;
using Microsoft.Maui.Controls.PlatformConfiguration.iOSSpecific;
...

public class iOSLargeTitlePageCode : ContentPage
{
    public iOSLargeTitlePageCode
    {
        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 Microsoft.Maui.Controls.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:

Page title as a large title.