Xamarin iOS 透明导航栏

Xamarin iOS Transparent Navigation bar

需要透明导航栏

https://developer.xamarin.com/recipes/ios/content_controls/navigation_controller/change_the_nav_bar_transparency/
试过这个但没有用。

有什么建议吗?

尽管如此,您的问题并未完全描述,并且不确定通过从给定的 link.

中说出 "Not Working" 来确切地实现什么

ViewController 的各个覆盖方法中编写以下代码,您希望在其中仅针对特定 ViewController 实现透明 NavigationBar

public override void ViewWillAppear(bool animated)
{
    base.ViewWillAppear(animated);
    if (NavigationController != null)
    {
        NavigationController.NavigationBar.SetBackgroundImage(new UIImage(), UIBarMetrics.Default);
        NavigationController.NavigationBar.ShadowImage = new UIImage();
        NavigationController.NavigationBar.Translucent = true;
        NavigationController.View.BackgroundColor = UIColor.Clear;
        NavigationController.NavigationBar.BackgroundColor = UIColor.Clear;
    }
}

public override void ViewWillDisappear(bool animated)
{
    base.ViewWillDisappear(animated);
    if (NavigationController != null)
    {
        NavigationController.NavigationBar.SetBackgroundImage(null, UIBarMetrics.Default);
        NavigationController.NavigationBar.ShadowImage = null;
        NavigationController.NavigationBar.BarTintColor = UIColor.Red; //Provide your specific color here
    }
}

如果你想全局设置这个,试试AppDelegateFinishedLaunching方法:

UINavigationBar.Appearance.SetBackgroundImage(new UIImage(), UIBarMetrics.Default);
UINavigationBar.Appearance.ShadowImage = new UIImage();
UINavigationBar.Appearance.BackgroundColor = UIColor.Clear;
UINavigationBar.Appearance.Translucent = true;

希望对您有所帮助!

单个导航栏用于 iOS 中的特定导航控制器。因此,如果您想使其对单个 VC 透明,则必须在导航到该 VC 时使其透明。然后当您从 viewWillDisappear(或 viewDidDisappear)方法中的 VC 返回时将其更改回来。