美文网首页selector
iOS修改TabBar顶部分割线的颜色,最简单方式

iOS修改TabBar顶部分割线的颜色,最简单方式

作者: YannChee | 来源:发表于2018-01-04 18:10 被阅读1155次

美工设计的TabBar顶部分割线的颜色比iOS系统自带的颜色要浅很多,所以需要修改系统tabBar的颜色.

网上搜索了一下,大部分做法是,调用tabBar的 setShadowImage: 和 setBackgroundImage: 方法

    [self.tabBar setShadowImage:[UIImage qy_imageWithColor:[UIColor whiteColor]]];
    [self.tabBar setBackgroundImage:[UIImage qy_imageWithColor:[UIColor clearColor]]];

但是这样直接修改tabBar的backgroundImage可能会引入新的bug,导致导航栏显示异常


导航栏显示正常
导航栏显示异常

下面介绍一种最简单的方法:

使用XCode自带的Debug View Hierarchy可以看到,tabBar上有一条细线

image.png

打印这个控件的信息可以看到



可以看出它个坐标超出父控件0.5
所以就有了思路了:
在这个控件上面添加一条新的分割线,把那条线给遮住就行了

    UIView *view = [[UIView alloc] initWithFrame:CGRectMake(0, -0.5, SCREEN_WIDTH, 0.5)];
    view.backgroundColor = [UIColor redColor];
    [[UITabBar appearance] insertSubview:view atIndex:0];

运行效果:


image.png

同理,如果去掉tabBar自带的毛玻璃效果,而使用纯色,可以这样做:

    UIView *customBackgroundView = [[UIView alloc] initWithFrame:self.tabBar.bounds];
    customBackgroundView.backgroundColor = [UIColor whiteColor];
    [[UITabBar appearance] insertSubview:customBackgroundView atIndex:0];

相关文章

网友评论

    本文标题:iOS修改TabBar顶部分割线的颜色,最简单方式

    本文链接:https://www.haomeiwen.com/subject/znzrnxtx.html