Как я могу удалить строку над панелью вкладок, которая отображается на iOS - PullRequest
0 голосов
/ 09 февраля 2020

Вот что я пытаюсь удалить. Я думал, что это было уже удалено ранее iOS, но теперь в 13.3 я думаю, что он вернулся снова:

enter image description here

Вот код рендерера, который я использовал до:

    protected override IShellItemRenderer CreateShellItemRenderer(ShellItem item)
    {
        var renderer = base.CreateShellItemRenderer(item);
        (renderer as ShellItemRenderer).TabBar.Translucent = false;
        (renderer as ShellItemRenderer).TabBar.ShadowImage = new UIImage(); // <<<<<<<
        (renderer as ShellItemRenderer).TabBar.BackgroundImage = new UIImage();
        UITabBar myTabBar = (renderer as ShellItemRenderer).TabBar;

        foreach (var barItem in myTabBar.Items)
        {
            barItem.ImageInsets = new UIEdgeInsets(5, 0, 0, 0);
        }
        return renderer;
    }

Ответы [ 2 ]

1 голос
/ 10 февраля 2020

Переопределенный метод CreateShellItemRenderer не может получить Tabbar сейчас, он вернет null. Поэтому код может не работать.

Вы можете переопределить CreateTabBarAppearanceTracker , чтобы получить панель вкладок в iOS 13. Как следует:

[assembly: ExportRenderer(typeof(AppShellTab.AppShell), typeof(AppShellTab.iOS.MyShellRenderer))]
namespace AppShellTab.iOS
{
    public class MyShellRenderer : ShellRenderer
    {
        protected override IShellTabBarAppearanceTracker CreateTabBarAppearanceTracker()
        {
            return new MyOtherTabBarAppearanceTracker();
        }

        public class MyOtherTabBarAppearanceTracker : ShellTabBarAppearanceTracker, IShellTabBarAppearanceTracker
        {
            void IShellTabBarAppearanceTracker.SetAppearance(UITabBarController controller, ShellAppearance appearance)
            {
                base.SetAppearance(controller, appearance);
                var tabBar = controller.TabBar;
                tabBar.BackgroundImage = new UIImage();
                tabBar.ClipsToBounds = true;
                //tabBar.Translucent = false;
            }
        }
    }
}

Эффект:

enter image description here

0 голосов
/ 09 февраля 2020

это Домашний индикатор

<ContentPage ...
             xmlns:ios="clr-namespace:Xamarin.Forms.PlatformConfiguration.iOSSpecific;assembly=Xamarin.Forms.Core"
             ios:Page.PrefersHomeIndicatorAutoHidden="true">
    ...
</ContentPage>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...