如何将精确的颜色设置为给定的uinavigationbar,我需要

时间:2017-10-10 06:04:54

标签: ios swift uinavigationbar

我想要的是UINavigationBar和searchView(CustomView) 应该具有完全相同的颜色,并且在UINavigataionbar下没有阴影。我已经尝试了很多,我找到了影子的灵魂

UINavigationBar.appearance().shadowImage = UIImage()

但仍然无法在UINavigationBar和searchView上执行相同的背景颜色。您可以看到UINavigationBar和SearchView之间的微小色差 请不要寻求指导,如果你有答案请分享。

注意:SearcView是UIView wid标签,图像不是UISeachBar。

enter image description here

4 个答案:

答案 0 :(得分:2)

尝试将navigationBar的translucent属性设置为false

<强>夫特

self.navigationController.navigationBar.isTranslucent = false

目标C

[self.navigationController.navigationBar setTranslucent:NO];

PS:如果你想在所有屏幕上进行,请全局设置

<强>夫特

UINavigationBar.appearance().isTranslucent = false

目标C

[[UINavigationBar appearance] setTranslucent:NO];

答案 1 :(得分:1)

将您的UINavigationBar半透明属性设置为false。

故事板:在故事板中取消选中半透明属性

enter image description here

<强>夫特:

self.navigationController.navigationBar.isTranslucent = false

在AppDelegate中(didFinishLaunchingWithOptions):

UINavigationBar.appearance().isTranslucent = false

答案 2 :(得分:0)

您可以使用此

更改导航栏的颜色
UINavigationBar *bar = [self.navigationController navigationBar];
[bar setTintColor:[UIColor greenColor]]; //Change the color according to your requirement.

答案 3 :(得分:0)

试试这个

目标C

self.navigationController.navigationBarHidden=NO;
[self.navigationController.navigationBar setTitleTextAttributes:     @{NSForegroundColorAttributeName:White,NSFontAttributeName:yourFont}];
self.navigationController.navigationBar.barTintColor = yourColor;

<强>夫特

self.navigationController?.navigationBar.barTintColor = .red //yourColor       
self.navigationController?.navigationBar.tintColor = .white //yourColor