丝带是什么以及如何将其取下?

问题描述 投票:0回答:1

我已将 maui / blazor 混合应用程序从 Maui 8.0.20 更新到 8.0.90,以修复 iOS 18 中的黑屏问题。

现在它会在页面顶部弹出一个栏或带,中间有一个按钮。

它将应用程序的底部向下推,所以我看不到页脚。

这是什么以及如何删除它?

enter image description here

注意:这不会出现在 Windows 版本的应用程序中。

ios maui maui-blazor ios18
1个回答
0
投票

这是苹果为 iOS 18 实现的新标签栏行为。不幸的是,苹果似乎没有提供选择退出的方法

在撰写本文时,我们正在弄清楚我们在 .NET MAUI SDK 中如何处理它,因为您在这里描述的情况似乎有点奇怪。

如果您想立即隐藏它,或者尝试这种新行为,您可以使用下面的

ShellRenderer
来访问新属性。

通过使用

TabBarHidden
并将其设置为
true
将会消失,但请记住这是新的选项卡栏,因此如果您想在应用程序中实现选项卡,通过隐藏它人们将无法在它们之间导航.

如果您对实现有任何想法,请在存储库的 .NET MAUI 问题中添加这些想法

using CoreGraphics;
using Microsoft.Maui.Controls.Handlers.Compatibility;
using Microsoft.Maui.Controls.Platform.Compatibility;
using UIKit;

namespace ios18test;

public sealed class MyShellRenderer : ShellRenderer
{
    private sealed class MyShellTabBarAppearanceTracker : ShellTabBarAppearanceTracker
    {
        public override void SetAppearance(UITabBarController controller, ShellAppearance appearance)
        {
            base.SetAppearance(controller, appearance);

            //controller.Mode = UITabBarControllerMode.TabBar;
            controller.TabBarHidden = true;
        }
    }
    protected override IShellTabBarAppearanceTracker CreateTabBarAppearanceTracker() => new MyShellTabBarAppearanceTracker();
}

并在您的

MauiProgram.cs
中添加:

var builder = MauiApp.CreateBuilder();
        builder
            .UseMauiApp<App>()
            #if IOS
            // This was added
            .ConfigureMauiHandlers(handlers =>
            {
                handlers.AddHandler<Shell, MyShellRenderer>();
            })
            #endif
            .ConfigureFonts(fonts =>
            {
                fonts.AddFont("OpenSans-Regular.ttf", "OpenSansRegular");
                fonts.AddFont("OpenSans-Semibold.ttf", "OpenSansSemibold");
            });

© www.soinside.com 2019 - 2024. All rights reserved.