özg*_*özg 35 iphone xcode objective-c ios
请看下面的截图.
我为UINavigationBar,底部的搜索栏和工具栏设置了相同UIColor对象的所有色调颜色.但由于某种原因,导航栏颜色略有不同.这可能是什么原因?
谢谢..
Dan*_*Liu 65
导航栏和搜索栏之间的区别是因为导航栏是半透明的,系统将为导航栏应用默认的Alpha值.
尝试 self.navigationController.navigationBar.translucent = NO;
Bra*_*n A 30
UINavigationBar
当涉及到你设置的颜色时,会有一些奇怪的行为.正如其他成员所指出的那样,您必须将translucent
布尔值设置为false
,但这并不是为了让您的栏与您尝试设置的颜色相匹配.它会很接近,但如果仔细观察,它将不是您尝试使用的确切颜色.为了设置真实的颜色,UINavigationBar
你需要了解它在做什么.
让我们说我想把我的UINavigationBar
颜色变成绿色.
这将是RGB值:R = 90 | G = 200 | B = 95.
什么UINavigationBar
都会做的是给这个绿色的"有光"看其应用的内置样式.对我们来说,结果是,它正在我们的绿色RGB值,并正在增加了20倍的每个.
如果你仔细观察,上面的绿色方块UINavigationBar
与使用相同RGB值显示的绿色方块不完全匹配.这看起来略显亮一点.
要解决这个问题,只需将RBG值减少20,即可打算用于UINavigationBar
应用程序中的颜色.
所以R = 90 | G = 200 | B = 95将变为R = 70 | G = 180 | B = 75.
您将不得不禁用导航栏的半透明属性
您可以使用以下代码行来编程
self.navigationController?.navigationBar.isTranslucent = false
Run Code Online (Sandbox Code Playgroud)
要么
只需取消选中情节提要中的“半透明”复选框,即可在UINavigationController的UINavigationBar属性中找到它
它因默认的 UINavigationBar 模糊效果而不同。我可以建议使用您的颜色设置 2px 宽度的可拉伸背景图像。像这样的东西:
UIImage *image = [UIImage imageNamed:@"yourBlueImage"];
image = [image stretchableImageWithLeftCapWidth:image.size.width / 2.0f topCapHeight:0.0f];
[yourNavBar setBackgroundImage:image forBarMetrics:UIBarMetricsDefault];
Run Code Online (Sandbox Code Playgroud)
这就像一个技巧,因为当您设置自定义 backgroundImage 模糊效果将被禁用,您将获得准确的颜色。
归档时间: |
|
查看次数: |
13311 次 |
最近记录: |