有时候做项目需求会遇到要求 去掉导航条navBar或者工具栏tabBar自带的灰色高亮的线,
ps.不是高清图 适当看吧!
之前用的方法都是 去查看nav和tabbar的子控件,判断是否是UIImageView,因为那个灰线是 一个UIImageView子控件携带的,之间的办法是:
-(void)viewDidLayoutSubviews{
[super viewDidLayoutSubviews];
for (UIView *view in self.tabBar.subviews) {
if ([view isKindOfClass:[UIImageView class]]) {
UIImageView *imageView=(UIImageView *)view;
[imageView removeFromSuperview];
}
}
}
后来查找资料 发现更好的方法:
在设置self.tabBar.backgroundImage情况下,可以取消tabbar上的灰色线,
[self.tabBar setShadowImage:[UIImage new]];
navbar上的灰色线也可以去除:
[[UINavigationBar appearance] setShadowImage:[UIImage new]];
已验证了这个效果。
参考来自:感谢 crane乖乖 的分享。
ps.
失败尝试一
之前查找其他网友的做法,使用这个方法在 viewDid里面调用 打印self.tabBar.subviews 数组,只是打印了items,或者 使用 [self.tabBar recursiveDescription]
获取tabbar视图层次结构,也咩有看到UIImageView 控件,并不能达到效果。
for (UIView *view in self.tabBar.subviews) {
if ([view isKindOfClass:[UIImageView class]]) {
UIImageView *imageView=(UIImageView *)view;
[imageView removeFromSuperview];
}
}
失败尝试二:
后来尝试修改tabbar的layer
self.tabBar.backgroundColor=[UIColor whiteColor];
self.tabBar.layer.borderColor =self.tabBar.backgroundColor.CGColor;
self.tabBar.layer.borderWidth =0.5;
也米有什么用处,我们设计给的图 是一个自带 1px 灰线的图片,这样只是削弱了 tabbar自带灰色线和图片自带灰色色的颜色,并不能满足项目需求。
end