如何在我的Xamarin.Forms应用程序中启用iOS 11 prefersLargeTitles?
我尝试为PageRenderer
创建一个源自NavigationPage
的自定义渲染器,设置:
ViewController.NavigationController.NavigationBar.PrefersLargeTitles = true;
然而,这并没有任何效果。
答案 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">