Ios 半透明的UINavigationBar无法延伸到屏幕顶部
我想制作一个红色半透明的UINavigationBar(用于iOS9),我发现以下代码是必不可少的:Ios 半透明的UINavigationBar无法延伸到屏幕顶部,ios,uinavigationcontroller,uinavigationbar,Ios,Uinavigationcontroller,Uinavigationbar,我想制作一个红色半透明的UINavigationBar(用于iOS9),我发现以下代码是必不可少的: navController.navigationBar.setBackgroundImage(UIImage(), forBarMetrics: .Default) navController.navigationBar.shadowImage = UIImage() navController.navigationBar.backgroundColor = UIColo
navController.navigationBar.setBackgroundImage(UIImage(), forBarMetrics: .Default)
navController.navigationBar.shadowImage = UIImage()
navController.navigationBar.backgroundColor = UIColor(red: 1.0,green: 0.3,blue: 0.3,alpha: 0.9)
navController.navigationBar.translucent = true
如果我只是创建了一个UINavigationBar(而不是创建一个UINavigationController),它就可以正常工作,但在创建UINavigationController时,它看起来是这样的
我发现罪魁祸首是行navController.navigationBar.setBackgroundImage(UIImage(),forBarMetrics:.Default)
,但如果我将其删除,则该条如下所示:
那么我该如何解决这个问题呢?(我正在以编程方式创建UINavigationController,对于无法嵌入图像带来的不便,我深表歉意)编辑:
为了获得所需颜色的半透明背景,需要对UINavigationBar进行子类化。看看这个答案:
在此处添加必要的代码以供参考:
@interface UnderlayNavigationBar : UINavigationBar
@end
@interface UnderlayNavigationBar ()
{
UIView* _underlayView;
}
- (UIView*) underlayView;
@end
编辑:
为了获得所需颜色的半透明背景,需要对UINavigationBar进行子类化。看看这个答案:
在此处添加必要的代码以供参考:
@interface UnderlayNavigationBar : UINavigationBar
@end
@interface UnderlayNavigationBar ()
{
UIView* _underlayView;
}
- (UIView*) underlayView;
@end
这对我还是不起作用。。它在您的设备上正常工作?对不起,我在项目中使用了自定义导航栏。从现有答案中选取相关部分。编辑答案;请看一下,让我知道它是否有效。当然,答案在Objective-C中,因此您可能需要将其转换为swift.:)这对我还是不起作用。。它在您的设备上正常工作?对不起,我在项目中使用了自定义导航栏。从现有答案中选取相关部分。编辑答案;请看一下,让我知道它是否有效。当然,答案在Objective-C中,因此您可能需要将其转换为swift.:)
UIViewController* rootViewController = ...;
UINavigationController* navigationController = [[UINavigationController alloc] initWithNavigationBarClass:[UnderlayNavigationBar class] toolbarClass:nil];
[navigationController setViewControllers:@[rootViewController]];