iOS 11大型游戏Xamarin.Forms

时间:2017-09-21 18:27:44

标签: xamarin.forms uinavigationbar ios11

如何在我的Xamarin.Forms应用程序中启用iOS 11 prefersLargeTitles

我尝试为PageRenderer创建一个源自NavigationPage的自定义渲染器,设置:

ViewController.NavigationController.NavigationBar.PrefersLargeTitles = true;

然而,这并没有任何效果。

2 个答案:

答案 0 :(得分:6)

[assembly: ExportRenderer(typeof(NavigationPage), typeof(NavBarRenderer))]
namespace LargeTitleSample.iOS
{
    public class NavBarRenderer : NavigationRenderer
    {
        protected override void OnElementChanged(Xamarin.Forms.Platform.iOS.VisualElementChangedEventArgs e)
        {
            base.OnElementChanged(e);

            NavigationBar.PrefersLargeTitles = true;
        }
    }
}

您必须为继承NavigationPage的{​​{1}}创建自定义渲染器。然后将NavigationRenderer上的PrefersLargeTitles属性设置为true。

似乎当你向页面添加一些可滚动的控件时,它会自动变为“从大到小”。向上滚动时的效果,至少对于NavigationBar

工作示例repo在这里:https://github.com/jfversluis/LargeTitleSample

答案 1 :(得分:0)

对于XAML:

<NavigationPage Title="..." xmlns:ios="clr-namespace:Xamarin.Forms.PlatformConfiguration.iOSSpecific;assembly=Xamarin.Forms.Core" ios:NavigationPage.PrefersLargeTitles="true">