UINavigationBar背景颜色不是我设置的确切的UIColor
请看下面的截图。
我为UINavigationBar,search栏和底部的工具栏设置了相同UIColor对象的所有浅色。 但由于某种原因导航栏颜色稍有不同。 这可能是什么原因?
谢谢..
您的导航栏和search栏之间的区别是因为导航栏是半透明的,系统将为导航栏应用默认的alpha值。
尝试self.navigationController.navigationBar.translucent = NO;
UINavigationBar
有一些奇怪的行为,当涉及到你设置的颜色。 正如其他成员指出,你必须将translucent
布尔值设置为false
,但这并不是让你的酒吧匹配你想要设置的颜色。 这将是密切的,但如果你仔细看它不会是你想要使用的确切颜色。 为了在UINavigationBar
上设置真实的颜色,你需要明白它在做什么。
假设我想将我的UINavigationBar
设置为这个很酷的绿色。
这将是一个RGB值:R = 90 | G = 200 | B = 95。
UINavigationBar
会做的是通过给这个绿色“光泽”外观应用它的内置样式。 对我们来说,结果就是我们的绿色RGB值,每个值都是20。
如果看上去很近,上面的绿色方块与UINavigationBar
显示的RGB值不一样。 这看起来稍微亮一些。
要解决这个问题,只需简单地将RBG值减less20就可以在应用程序中使用UINavigationBar
。
所以R = 90 | G = 200 | B = 95将变成R = 70 | G = 180 | B = 75。
它因为默认的UINavigationBar模糊效果而不同。 我可以build议使用你的颜色设置2px宽度可拉伸背景图像。 像这样的东西:
UIImage *image = [UIImage imageNamed:@"yourBlueImage"]; image = [image stretchableImageWithLeftCapWidth:image.size.width / 2.0f topCapHeight:0.0f]; [yourNavBar setBackgroundImage:image forBarMetrics:UIBarMetricsDefault];
这就像一个技巧,因为当你设置自定义backgroundImage模糊效果将被禁用,你会得到确切的颜色。
navigationBar.barStyle = UIBarStyle.blackOpaque
当以前的答案都没有工作时(在iOS 9.3中),防止不必要的背景混合。
我以前也有过这个问题。 完全closuresXcode,解决了我的问题。
- UIApplication.statusBarStyle在viewWillAppear和viewDidAppear之间变化
- 故事板:如何将单个视图链接到多个容器视图?
- 我如何正确设置AFNetworking获取请求?
- 如何作为自定义转换的一部分来更新StatusBar样式
- HttpListener在MonoTouch上使用HTTPS
- MonoTouch.Dialog中的每个RootElement都有一个专用的UIViewController?
- JSON匹配NSString与NSDictionary
- GET请求使用AFNetworking和保存响应
- 如何使用Google离线访问令牌在iOS的后台进行身份validation?