NavigationBar.ShadowImage = new UIImage () не удаляет теневую линию после xamarin.forms 4.5 - PullRequest
0 голосов
/ 15 апреля 2020

NavigationBar.ShadowImage = new UIImage () не удаляет теневую линию на IOS после xamarin.forms 4.5. Какой новый способ сделать это?

Я пробовал все это, но не работает.

   protected override void OnElementChanged(VisualElementChangedEventArgs e)
    {
        base.OnElementChanged(e);
        NavigationBar.SetBackgroundImage(new UIImage(), UIBarMetrics.Default);
        NavigationBar.ShadowImage = new UIImage();
        UINavigationBar.Appearance.SetBackgroundImage(new UIImage(), UIBarMetrics.Default);
        UINavigationBar.Appearance.ShadowImage = new UIImage();
    }
    public override void ViewDidLoad()
    {
        base.ViewDidLoad();
        UINavigationBar.Appearance.SetBackgroundImage(new UIImage(), UIBarMetrics.Default);
        UINavigationBar.Appearance.ShadowImage = new UIImage();
        NavigationBar.SetBackgroundImage(new UIImage(), UIBarMetrics.Default);
        NavigationBar.ShadowImage = new UIImage();
    }

1 Ответ

1 голос
/ 15 апреля 2020

Я решил свою проблему следующим образом:

Моя пользовательская страница навигации

        public CustomNavigationPage(Xamarin.Forms.Page root) : base(root)
    {
        InitializeComponent();
        On<iOS>().SetHideNavigationBarSeparator(true);
    }

И на странице навигации средство визуализации

 public override void ViewWillAppear(bool animated)
    {
        base.ViewWillAppear(animated);

        if (Element is Xamarin.Forms.NavigationPage navigationPage)
        {
            if (navigationPage.OnThisPlatform().HideNavigationBarSeparator())
            {
                if (UIDevice.CurrentDevice.CheckSystemVersion(13, 0))
                {
                    NavigationBar.StandardAppearance.ShadowColor = null;
                }
            }
        }
    }
...