前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >iOS开发中去掉tabBar上方的一条横线

iOS开发中去掉tabBar上方的一条横线

作者头像
用户1451823
发布2018-09-13 15:39:58
2.9K0
发布2018-09-13 15:39:58
举报
文章被收录于专栏:DannyHoo的专栏

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://cloud.tencent.com/developer/article/1337756

最近在修改公司之前的一个项目中的bug的时候发现在tabBar上方有一条横线,在看了项目中的代码后发现这个问题是由于设置了tabBar的背景图导致的。设置背景图的代码:

self.tabBar.backgroundImage = image;

在之前的项目中也这样做过但并没有发现有一条横线,但在利用图层查看工具看了之前的一些项目后发现也是有一条横线的,可为什么之前的项目中并没有发现呢?

这与设置的tabBar的背景图片有关,在之前的项目中设置的tabBar的背景图片的高度都是49并且是一个矩形所以我们并不易用肉眼发现那条横线。而在这个项目中设置的tabBar的背景图是一个中间有凸起的不规则的图片,所以横线会很容易被我们所看到。看效果图:

通过查看图层我们会更容易看到这条横线,

这条横线实际是一个UIImageView,本来的想法是获取该UIImageView然后将其隐藏。然而在打印tabBar的子视图的时候并没有打印出_UIBarBackground这个对象,那么_UIBarBackground应该是一个私有类,我们无法访问,因此我们也就无法获取其上的UIImageView进而对其进行隐藏。于是修改了原有的代码,并不是设置tabBar的背景图,而是在tabBar上添加一张图片,同样实现了相同的效果。代码:

UIImageView *bgV = [UIImageView alloc init];

UIImage * image = UIImage imageNamed:@"1";

bgV.image = image;

bgV.frame = CGRectMake(0, -(130*0.5*IPHONE5_W_SCALE-49), 320*IPHONE5_W_SCALE,130*0.5*IPHONE5_W_SCALE);

self.tabBar insertSubview:bgV atIndex:0;

self.tabBar.backgroundImage = UIImage new;

self.tabBar.shadowImage = UIImage new;

注意:要根据要设置的图片的高度调整它的位置。

修改之后的效果:

我们可以看到_UIBarBackground上只有一个UIImageView了,而我们设置的图片处在了tabBar上。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2017年05月18日,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档