前几天做项目需要将 tabbar 的个数设置为5个,且中间那个比较大上.结果如图.tabbar 上面有一条灰色横线总是挡在中间大图的上方,而不是被大图盖着.
修改前最后是经过群里的几位朋友指点,修改成功了.如图:
修改后下面介绍具体做法:
1,在TabBarViewController.m中的, viewWillAppear的方法中添加两行代码,即可去掉灰色横线.
[self.tabBar setBackgroundImage:[UIImage new]];
[self.tabBar setShadowImage:[UIImage new]];
2,由于去掉黑线后, tabbar 是白色的背景,如果界面也是白色的话就看不出来边界.因此可以自己手动添加一条灰色的线.定义一个 继承自 UITabBar 的类CFTabBar
3,在 CFTabBar.m 的layoutSubviews方法中添加如下代码
UILabel *topLabel = [[UILabel alloc] init];
topLabel.frame = CGRectMake(0, 0, self.frame.size.width, 1);
topLabel.backgroundColor = HEX_RGB(0XEEEEEE);//此处是设置颜色,我用的是封装的一个16进制取色类.
[self addSubview:topLabel];
[self insertSubview:topLabel atIndex:1];//此处是关键,将横线放在 Tabbar 的倒数第二层上,这样就会被其他视图遮盖.
4,在TabBarViewController.m的 viewDidLoad: 中设置 tabbar
CFTabBar *testTabBar = [[CFTabBar alloc] init];
[self setValue:testTabBar forKey:@"tabBar"];
网友评论