Titoli di pagine di grandi dimensioni in iOS
Questo specifico della piattaforma iOS viene usato per visualizzare il titolo della pagina come titolo di grandi dimensioni sulla barra di spostamento di un NavigationPage
, per i dispositivi che usano iOS 11 o versione successiva. Un titolo di grandi dimensioni viene allineato a sinistra e usa un tipo di carattere più grande e passa a un titolo standard man mano che l'utente inizia a scorrere il contenuto, in modo che il patrimonio dello schermo venga usato in modo efficiente. Tuttavia, nell'orientamento orizzontale, il titolo tornerà al centro della barra di spostamento per ottimizzare il layout del contenuto. Viene utilizzato in XAML impostando la NavigationPage.PrefersLargeTitles
proprietà associata su un boolean
valore:
<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>
In alternativa, può essere usato da C# usando l'API Fluent:
using Xamarin.Forms.PlatformConfiguration;
using Xamarin.Forms.PlatformConfiguration.iOSSpecific;
...
var navigationPage = new Xamarin.Forms.NavigationPage(new iOSLargeTitlePageCS());
navigationPage.On<iOS>().SetPrefersLargeTitles(true);
Il NavigationPage.On<iOS>
metodo specifica che questa piattaforma verrà eseguita solo in iOS. Il NavigationPage.SetPrefersLargeTitle
metodo, nello spazio dei Xamarin.Forms.PlatformConfiguration.iOSSpecific
nomi , controlla se i titoli di grandi dimensioni sono abilitati.
Se i titoli di grandi dimensioni sono abilitati in NavigationPage
, tutte le pagine nello stack di spostamento visualizzeranno titoli di grandi dimensioni. Questo comportamento può essere sottoposto a override nelle pagine impostando la Page.LargeTitleDisplay
proprietà associata su un valore dell'enumerazione LargeTitleDisplayMode
:
<ContentPage ...
xmlns:ios="clr-namespace:Xamarin.Forms.PlatformConfiguration.iOSSpecific;assembly=Xamarin.Forms.Core"
Title="Large Title"
ios:Page.LargeTitleDisplay="Never">
...
</ContentPage>
In alternativa, è possibile eseguire l'override del comportamento della pagina da C# usando l'API Fluent:
using Xamarin.Forms.PlatformConfiguration;
using Xamarin.Forms.PlatformConfiguration.iOSSpecific;
...
public class iOSLargeTitlePageCS : ContentPage
{
public iOSLargeTitlePageCS(ICommand restore)
{
On<iOS>().SetLargeTitleDisplay(LargeTitleDisplayMode.Never);
...
}
...
}
Il Page.On<iOS>
metodo specifica che questa piattaforma verrà eseguita solo in iOS. Il Page.SetLargeTitleDisplay
metodo, nello spazio dei Xamarin.Forms.PlatformConfiguration.iOSSpecific
nomi , controlla il comportamento del titolo di grandi dimensioni in Page
, con l'enumerazione LargeTitleDisplayMode
che fornisce tre valori possibili:
Always
: forzare la barra di spostamento e le dimensioni del carattere per usare il formato grande.Automatic
: usare lo stesso stile (grande o piccolo) dell'elemento precedente nello stack di navigazione.Never
: forzare l'uso della normale barra di spostamento in formato piccolo.
Inoltre, il SetLargeTitleDisplay
metodo può essere usato per attivare o disattivare i valori di enumerazione chiamando il LargeTitleDisplay
metodo , che restituisce l'oggetto corrente LargeTitleDisplayMode
:
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;
}
Il risultato è che un oggetto specificato LargeTitleDisplayMode
viene applicato a Page
, che controlla il comportamento del titolo di grandi dimensioni: