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 NavigationPage
Navigationsstapel 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 Page
Steuerelement angewendet wird, welches das Verhalten des großen Titels steuert: