iOS'ta Büyük Sayfa Başlıkları

Örneği İndir Örneği indirme

iOS platformuna özgü bu, iOS 11 veya daha büyük cihazlar için sayfa başlığını bir gezinti çubuğunda büyük bir başlık olarak NavigationPage görüntülemek için kullanılır. Büyük bir başlık hizalı şekilde bıraktır ve daha büyük bir yazı tipi kullanır ve kullanıcı içeriği kaydırmaya başladığında standart bir başliğe geçişler, böylece ekran alanı verimli bir şekilde kullanılır. Ancak, yatay yönlendirmede başlık, içerik düzenini iyileştirmek için gezinti çubuğunun merkezine geri döner. Ekli özelliği bir değere ayararak NavigationPage.PrefersLargeTitles XAML'de boolean tüketilir:

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

Alternatif olarak fluent API'si kullanılarak C# ile de kullanılabilir:

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

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

yöntemi, NavigationPage.On<iOS> bu platforma özgü yöntemin yalnızca iOS üzerinde çalıştırılamayacaklarını belirtir. ad NavigationPage.SetPrefersLargeTitle alanı içinde Xamarin.Forms.PlatformConfiguration.iOSSpecific yöntemi, büyük başlıkların etkin olup olmadığını kontrol eder.

üzerinde büyük başlıkların etkinleştirilmesi NavigationPage şartıyla, gezinti yığınında tüm sayfalar büyük başlıklar görüntüler. Eklenen özellik, bir numaralama değerine ayar tarafından sayfalarda bu davranış Page.LargeTitleDisplayLargeTitleDisplayMode geçersiz kılınabilir:

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

Alternatif olarak, fluent API kullanılarak sayfa davranışı C# ile geçersiz kılınabilir:

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

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

yöntemi, Page.On<iOS> bu platforma özgü yöntemin yalnızca iOS üzerinde çalıştırılamayacaklarını belirtir. ad Page.SetLargeTitleDisplay alanı içinde Xamarin.Forms.PlatformConfiguration.iOSSpecific yöntemi, üzerinde büyük başlık davranışını, Page numaralama üç olası değer sağlayarak kontrol LargeTitleDisplayMode eder:

  • Always – gezinti çubuğunu ve yazı tipi boyutunu büyük biçimi kullanmaya zorlar.
  • Automatic – gezinti yığınında önceki öğeyle aynı stili (büyük veya küçük) kullanın.
  • Never – normal, küçük biçimli gezinti çubuğunun kullanımını zorlar.

Ayrıca yöntemi, geçerli döndüren yöntemini çağırarak numaralama değerlerinin SetLargeTitleDisplayLargeTitleDisplay geçişlerini yapmak için LargeTitleDisplayMode kullanılabilir:

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

Sonuç olarak, büyük LargeTitleDisplayMode başlık davranışını kontrol eden için belirtilen bir Page uygulanır:

Etki Etkisi Platforma Özgü