xamarin.forms - Xamarin.Forms 中的 iOS 11 大标题

标签 xamarin.forms uinavigationbar ios11

如何启用 iOS 11 prefersLargeTitles贯穿我的 Xamarin.Forms 应用?

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

ViewController.NavigationController.NavigationBar.PrefersLargeTitles = true;

然而,这没有任何效果。

最佳答案

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

您必须为继承 NavigationRendererNavigationPage 创建自定义渲染器。然后将 NavigationBar 上的 PrefersLargeTitles 属性设置为 true。

看起来当你在页面上添加一些可滚动的控件时,它会在向上滚动时自动具有“从大到小”的效果,至少对于 ListView 是这样。

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

关于xamarin.forms - Xamarin.Forms 中的 iOS 11 大标题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46350875/

相关文章:

c# - 具有透明状态栏的 Xamarin Forms 背景图像

javascript - 在导航菜单中突出显示当前页面?

ios - UITableView - 破坏性的 UIContextualAction 不重新加载数据

在 xamarin.forms 中点击的 ListView 项

xamarin.forms - xamarin 表单删除 grid.rows 之间的间距不起作用

data-binding - Xamarin.Forms 刷新编辑器的 TextProperty

ios - 导航栏透明度问题

ios - 导航栏和状态栏的不同颜色

iOS 11+ 如何将现有核心数据迁移到共享应用组以用于扩展?

objective-c - FBSDK 共享对话框无法在 IOS 11 上运行