先上效果图:
1.首先需要一张纯透明的png图片设置为navigationBar的背景
[self.navigationController.navigationBarsetBackgroundImage:[UIImageimageNamed:@"未标题-1.png"]forBarMetrics:UIBarMetricsDefault];
2.执行完上面那行代码后发现navigationBar设置为透明了,但是在Bar的下方会有一条“线”。就是下图的样子。
想要实现彻底的透明需要再加几行代码:
//方案一:
if ([self.navigationController.navigationBar respondsToSelector:@selector( setBackgroundImage:forBarMetrics:)]){
NSArray *list = self.navigationController.navigationBar.subviews;
for (id obj in list) {
if ([obj isKindOfClass:[UIImageView class]]) {
UIImageView *imageView = (UIImageView *)obj;
NSArray *list2 = imageView.subviews;
for (id obj2 in list2) {
if ([obj2 isKindOfClass:[UIImageView class]]) {
UIImageView *imageView2 = (UIImageView *)obj2;
imageView2.hidden = YES;
}
}
}
}
}
//方案二:
[self.navigationController.navigationBarsetShadowImage:[UIImagenew]];
如有疑问,欢迎留言~