您的位置:首页 > 产品设计 > UI/UE

导航条UINavigationBar和工具栏tabBar的灰色高亮线去掉

2015-11-13 17:51 344 查看
有时候做项目需求会遇到要求 去掉导航条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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  导航 tabbar