Xamarin iOS 透明导航栏
Xamarin iOS Transparent Navigation bar
需要透明导航栏
有什么建议吗?
尽管如此,您的问题并未完全描述,并且不确定通过从给定的 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
}
}
如果你想全局设置这个,试试AppDelegate
的FinishedLaunching
方法:
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 返回时将其更改回来。
需要透明导航栏
有什么建议吗?
尽管如此,您的问题并未完全描述,并且不确定通过从给定的 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
}
}
如果你想全局设置这个,试试AppDelegate
的FinishedLaunching
方法:
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 返回时将其更改回来。