实现一个简单管理导航栏的方法如下
- (void)setIsOpaque:(BOOL)isOpaque
{
if (!isOpaque) {//透明
self.navigationController.navigationBar.translucent = YES;
[self.navigationController.navigationBar setBackgroundImage:[UIImage new] forBarMetrics:UIBarMetricsDefault];
}else{//不透明
self.navigationController.navigationBar.translucent = NO;
[self.navigationController.navigationBar setBackgroundImage:nil forBarMetrics:UIBarMetricsDefault];
}
}
出现一个问题,就是页面进行切换时,导航栏上有阴影一闪而过。通过查看视图结构发现,阴影是iOS7的一个适配方法引起的。

[self setEdgesForExtendedLayout:UIRectEdgeNone];
网友评论